Apache中Mod_Rewrite重写url配置方法
首先确认你已经开启服务器的路由重写模块,如果不确认,请在httpd.conf文件中查找如下代码,并将前面的#符号删除,重启服务器,即开启了重写模块
第一步:找到apache的配置文件httpd.conf(文件在conf目录下)
第二步:你首先必须得让服务器支持mod_rewrite,如果你使用的是虚拟主机,请事先询问你的主机提供商。
打开httpd.conf,找到
代码如下 | 复制代码 |
#LoadModule rewrite_module modules/mod_rewrite.so 把#去掉 找到AllowOverride None 改成 AllowOverride All, |
注:AllowOverride 的参数设置为ALL,表示整台服务器上都支持URL规则重写。Apache 服务器要读每个网站下目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则就不会有任何效果。
对于不同的网址,需要在APACHE中增加如下内容
代码如下 | 复制代码 |
<Directory “E:/Apache Group/Apache2/htdocs/leapsoul”> /*引号里代表你的web存放目录*/ /*如果是Linux,只要你定位到你网站目录即可*/ Options FollowSymLinks AllowOverride None </Directory> |
第三步:重启apache服务器,先按stop再start。
第四步:在你需要URL重写的网站目录下放一个.htaccess文件,文件名是.htaccess,Windiws下不能直接建立,你可以用记事本另存为。
注:我测试的时候在每个需要伪静态的目录下都存放了对应的.htaccess文件,同时在httpd.conf文件中像第二步那样对相关的目录添加了相应的<Directory>..</Directory>代码。
第五步:在.htaccess中通过正则表达式映射需要伪静态的页面。
然后在你的网站配置中加入下面代码
代码如下 | 复制代码 |
RewriteEngine on |
然后重启apache现在我们就可以如
index.html访问就是index.php, 页1.html访问的就是info.php?infoid=1哦,这就是为静态了。
.htaccess做法
.htaccess文件,添加如下代码
代码如下 | 复制代码 |
# rewrite规则 |
在windows下无法直接创建 .htaccess文件,请注意前面有“点号”
很奇怪,在 Windows 资源管理器里面不允许你建立 .htaccess 这样只有扩展名的文件。所以你必须先将文件保存为其他名字,例如 app.htaccess。然后进入命令行窗口(通过开始菜单运行 cmd.exe 程序即可),输入 ren a.htaccess .htaccess 命令来对文件改名。或者新建一个记事本,另存为.htaccess 即可
补充:Php教程,apache