Apache 2升级杀了我们.htaccess,无法解决,请帮忙!

时间:2009-11-19 17:50:39

标签: apache mod-rewrite apache2

我们今天被迫升级到Apache 2,一旦我们的规则集工作了几个月就停止了工作。

它显示的行为完全忽略.htacess,即使在我们删除它(.htacess)之后,服务器似乎也使用了“幻像”规则。

IE:site / stuff /没有.htacess应该显示404 ...但是它会转到site / stuff.php(根本没有.htacess!)

使用 .htacess已启用 site / stuff / 1 /应该去site / stuff.php?var = 1而不是去site / stuff.php

任何帮助表示赞赏,这让我们感到疯狂。

1 个答案:

答案 0 :(得分:4)

我猜这是Apache配置问题。

您的主httpd.conf可能已将AllowOverride指令的默认值设置为None。这是一组限制性权限,可提高性能和安全性,但这意味着Apache完全忽略任何.htaccess文件。

您需要在主Apache配置文件或AllowOverride指令内为您的服务目录启用VirtualHost。您可以通过指定

来执行此操作
AllowOverride All

<VirtualHost><Directory>区块内。

编辑(回应评论)

如果没有更多信息,诊断将非常困难。如果您可以提供更多详细信息,那可能会有所帮助。您的网址似乎正在被重写,因此您可以尝试启用mod_rewrite debugging以查看规则的应用方式:

<IfModule mod_rewrite.c>
    RewriteLog "/path/to/rewrite.log"
    RewriteLogLevel 3
</IfModule>

第二次编辑 - 多视图

重新阅读问题描述后,我认为您可能会遇到MultiViews的问题。这听起来与我发现的this thread非常相似。尝试在<VirtualHost><Directory>下禁用MultiView,他们可能会违反您的重写规则。