apache rewrite配置


现在暂时是没有问题了,先转载这篇文章,等再遇见问题时在看,一开始确实不能正常重写url,然后按照下面的方法解决了问题,等一切正常后,我又回过头来,检查这些配置,发现去掉一些配置把一些配置复原,仍能正常rewrite。正在不解中。先收藏这篇文章,以后有闲暇再来研究。

都是在httpd.conf 设置, 这个配置文件在 /etc/httpd/conf/   如果不是centOS话 位置可能不一样 请另行查找吧

是否支持mod_rewrite.so这个模块

LoadModule rewrite_module modules/mod_rewrite.so  如果前面为#注释的话 去掉注释  如果没有这句的话查看目录下是否存在文件 存在的话就自己手写吧  如果没有这个文件的话...  就去官网下载或者重装apache

二 AccessFileName 是否改成别的名字了 在配置文件里  查找这项设置  正确设置如

#这个地方很奇怪,我后来又改成默认设置竟然没有问题

AccessFileName .htaccess

<Files ~ "^\.htaccess">
Order allow,deny
Deny from all
</Files>

注:  我的centOS里面  Files 设置就有问题  写成了    <Files ~ "^\.ht">   导致不能用.htaccess  默认如此.
三 如果你的网站在 网站根目录 请注意<Directory />设置  把里面 AllowOverrideNone 改为 AllowOverride All  正确形式如下

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
四 如果不在根目录  请自行添加虚拟目录并做如下设置

#我把虚拟目录删除后也可以正常重写url

<Directory "/var/www/html/gaige">    #为你网站实际目录,我的是gaige
Order allow,deny
Allow from all
AllowOverride All
</Directory>

五  切记重启apache服务  service httpd restart
经过以上几点 应该可以 顺利使用 .htaccess
下面测试下   配置.htaccess,上传到 网站根目录,内容如下:

<IfModule mod_rewrite.c>
RewriteEngine on
ErrorDocument 404 /gaige/404.html

</IfModule>

404.html我是错误页面
进入你的网站 随便敲个错误页面

如果能看到   "我是错误页面"  就说明大功告成了

 

Archives