注:第一部分来自 http://www.cnblogs.com/wangkongming/archive/2012/11/13/2768251.html 这位博主的我的网站简洁 还有诗歌 我我我 。。 喜欢喜欢喜欢php
第二部分 是本身实践中写的html
【一】正则表达式
你是否曾经对一些网站的网址看起来很是清爽,没有任何.php或.html后缀感到奇怪?他们就是这样作到的。vim
一、安装 mod_rewrite 模块
由于 Apache 服务器默认是没有打开 mod_rewrite 模块的,因此咱们必须手动来启动。打开 Apache 的配置文件 httpd.conf 文件,找到下面一行:
#LoadModule rewrite_module modules/mod_rewrite.so
前面的 # 号是 Apache 配置文件的注释符,也就是 Apache 服务器没有加载该模块。将前面的 # 号去掉,保存后重启 Apache 服务器,这是咱们就实现了加载 mod_rewrite 这个模块了。(提示:任何一次对 Apache 的配置文件 httpd.conf 文件都是要从新启动 Apache 才能生效的)
二、新建 .htaccess 文件
在 windows 系统默认的状况下是不能新建没有文件名的文件的,这里建议你们使用 vim 这个编辑器来新建。方法是打开 vim 编辑器随便输入一段文字,而后保存为 .htaccess 便可。不少朋友由于习惯了 windows 系统,因此新建这个文件很头疼。还有就是文件名必定不要错,我今天写的时候把文件保存成了.htacess,看到没有,少了一个c,怎么调试都不对,还好 最后发现了这个低级错误。windows
三、配置 .htaccess 文件
.htaccess 文件务必放在你项目的根目录下,不要放在其余文件夹下。配置 .htaccess 文件的格式以下:
<ifmodule mod_rewrite.c>
RewriteEngine On
#这里是你的规则
</ifmodule>
解释:RewriteEngine On :启动URL重写引擎
先看以下一个配置好了的 .htaccess 文件实例:
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.html$ /index.php [L]
RewriteRule ^shop/(.+)/$ shop/shop.php?providerId=$1 [L]
</ifmodule>浏览器
分析:上面 .htaccess 文件就写了二条规则。当在浏览器中输入 index.html 时,后台调用的是 index.php 文件。符号“^”是之后面的字符开头,相信熟悉正则表达式的朋友不会陌生吧,符号“$”是之前面的字符结尾。符号L表示中止处理接下来的规则。最后一条当 咱们在浏览器中输入 shop/2322 时,后台调用 shop.php文件并传递参数provider=2322 。
配置规则,你们照着那一条去写吧,记得每行后面加个 L 符号。服务器
再写一个:dom
http://www.yourdomin.com/category.php?id=12 想重写成 http://www.yourdomin.com/category/12 编辑器
RewriteRule ^category/([0-9]+)$ category.php?id=$1ide
若是有多页的文章 如:http://www.yourdomin.com/category.php?id=12&page=3 重写成 http://www.yourdomin.com/category/12/3
RewriteRule ^category/([0-9]+)/([0-9]+)$ category.php?id=$1&page=$2
若是你想升级你的站点,又要保证老的连接均可用,你也能够经过mod_rewrite模块来实现。你仅仅须要写一个规则之处这个网页被永久的移动了。例子以下:
RewriteRule ^oldpage.html$ newpage.html [R=301]
记录下来,之后还会用到。
【二】