现在暂时是没有问题了,先转载这篇文章,等再遇见问题时在看,一开始确实不能正常重写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我是错误页面
进入你的网站 随便敲个错误页面
如果能看到 "我是错误页面" 就说明大功告成了