Ubuntu下伪静态规则无效的解决方案

Ubuntu是一个很常见也很好用的系统,很多的服务器都用的这一系统。系统自带的APT-GET可以安装各种各样的软件,十分方便。用apt-get也可以轻松愉快的构建LAMP环境,然后丢一个Wordpress或者zblog之类的就可以用了。但是用apt-get安装的lamp环境在启用伪静态的时候很可能出现问题,检查后会发现.htaccess文件也没问题,VirtualHost中的Directory也配置了AllowOverride All,但是访问伪静态网页的时候依旧是404,完全没有重写。很多人百思不得其解。其实导致伪静态失效的原因很简单,那就是Ubuntu用apt-get安装的Apache默认没有启用mod_rewrite这一模块,所以伪静态当然就无法生效啦。如果仔细看看WordPress的.htaccess文件就会发现他的重写规则是被包含在<IfModule mod_rewrite.c>和</IfModule>中的,所以没有启用mod_rewrite的时候只是重写规则失效返回http404不会导致http500。如果将<IfModule>去掉的话再访问就会出现http500了。知道了原因想要解决问题就更简单了,虽然默认没有启用这一模块但是这一模块在安装的时候已经安装在了系统里,只要将mod_rewrite的配置文件加到apache的启用模块的文件夹里面就可以了。直接执行这条命令

ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

然后重启Apache

service apache2 restart

就可以了~


本文由Hack Blog原创,如需转载注明原文链接

作者:test 分类:日常笔记 浏览:1005 评论:1
留言列表
发表评论
来宾的头像