修改apache2.conf的AllowOverride为All后出现500内部服务器错误,.htaccess重写规则失效问题排查
修改apache2.conf的AllowOverride为All后出现500内部服务器错误,.htaccess重写规则失效问题排查
看起来你遇到的问题其实挺典型的,咱们一步步来解决:
首先从你找到的错误日志就能直接定位根因了——Apache的重写模块(mod_rewrite)没启用!
当你把apache2.conf里的AllowOverride从None改成All后,Apache开始读取你网站目录下的.htaccess文件,但文件里用到了RewriteEngine这类URL重写指令,而负责解析这些指令的mod_rewrite模块,在Ubuntu系统的Apache默认配置里是没有启用的,这就导致服务器识别不了这些指令,直接抛出500内部错误。
解决方法很简单,只需要两步:
- 启用
mod_rewrite模块,执行命令:sudo a2enmod rewrite - 重启Apache服务让配置生效:
(或者用老版本的命令sudo systemctl restart apache2sudo service apache2 restart也可以)
等你完成这两步后,再访问你的网站,应该就能正常识别.htaccess里的重写规则,同时不会再出现500错误了。
额外提个小建议:以后遇到Apache相关的服务器错误,优先去看它的错误日志(默认路径是/var/log/apache2/error.log),日志里的具体错误信息是排查这类问题最直接的线索,就像这次你通过日志找到的RewriteEngine错误,直接帮我们锁定了模块未启用的问题。
备注:内容来源于stack exchange,提问作者Andrei
相关产品推荐
相关产品推荐

