今天在本地调试Discuz 6 .1 .0的时候,发现URL没法进行伪静态。我以为是.htaccess没设置对,反复修改还是不行。我突然想到,是不是我的apache本来就不支持.htaccess呢。于是我搜索起来。
有网站介绍说:打开httpd.conf文件用文本编辑器打开后,查找
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
改为:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
可是我在我的httpd.conf文件里根本没有发现Options FollowSymLinks 之类的东西。我只好将
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
手动添加到httpd.conf文件里,然后重启Apache服务器,问题得到解决。
如果你也遇到Apache还不支持.htaccess的情况,使用我上面的这个情况不行的话,那就在httpd.conf文件里搜索LoadModule rewrite_module modules/mod_rewrite.so,如果前面有#符号,就去掉。保存,然后重启Apache。
首先去掉LoadModule rewrite_module modules/mod_rewrite.so前面的注释符号#,然后把所有的AllowOverride None都改成AllowOverride All才行。实际上,我在调试的时候并没有把所有的AllowOverride None都改成AllowOverride All,如果我全部修改了反而还出错。可能情况有所不同吧。
【总结】当你的Apache不支持.htaccess时,解决方法如下:
一,在你的Apache安装文件夹conf里找到httpd.conf文件。这个文件相当重要,而且经常使用。配置Apache服务器是必须搞懂的。
二,搜索LoadModule rewrite_module modules/mod_rewrite.so 如果前面有注释符号#,请去掉。
三,搜索Options FollowSymLinks,然后将它下面的AllowOverride None 修改为AllowOverride All;如果没有搜索到,那就手动在httpd.conf里添加<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
四,保存。重启apache服务器。记得,一定要重启。很多时候我们设置后,马上刷新网页,并没有效果,是因为没有重启服务器。这个很容易忽略,也是我们粗心的地方。
五,如果你还不行,那就将httpd.conf文件里的所有AllowOverride None都改成AllowOverride All试试。保存,重启服务器再试试。