.htaccess 被 Apache 忽略

.htaccess 被 Apache 忽略

我的生产服务器上似乎忽略了我的一台虚拟主机的 .htaccess 文件。该文件与同一服务器上其他虚拟主机的工作 .htaccess 文件相同。此外,虚拟主机定义与其他工作虚拟主机相同,当然,特定于各个虚拟主机的行除外。当问题发生时,index.php 会正确加载基本 URL,但所有重写指令都会被忽略。此外,将垃圾放入 .htaccess 中不会导致错误。

该站点在我的备份服务器上按预期运行,每小时都会向该服务器镜像网站和 Apache 配置文件(启用 mods 除外),并且将数据库复制到该服务器。

我比较了我的备份和生产服务器上启用了 mods 的情况,发现 mod_cgid 在生产中没有启用。启用它似乎可以解决问题,但只是暂时的。

有选择地从 .htaccess 中删除重写不会成功。我正在考虑重建我的生产服务器。建议进行哪些其他故障排除?有任何已知的修复方法吗?

答案1

该问题是由我的生产服务器上的 VirtualHost 定义配置错误引起的。指定AllowOverride 的目录部分中的目录路径拼写错误。这就是为什么 index.php 正确加载基本 URL 而重写被忽略的原因。

虽然看起来启用 mod-cgid 并重新启动服务器暂时解决了问题,但我一定是弄错了。在故障排除过程中,我调整了 DNS 设置,有时将域指向我的备份服务器,并且我可能忽略了重新指向生产服务器。或者我可能忽略了删除浏览器缓存。我无法追溯这些步骤,而且我很满意现在生产中的工作正常。

相关内容