apache在查找.htaccess之前解析URL

apache在查找.htaccess之前解析URL,apache,.htaccess,mod-rewrite,apache2,Apache,.htaccess,Mod Rewrite,Apache2,我有以下形式的重写规则: RewriteRule ^foo/([a-zA-Z0-9]+)$ foo.php?arg=$1 [qsa,nc] 它采用/foo/bar格式的URL,并将其更改为/foo.php?arg=bar 它在本地正常工作,在我的旧主机上工作,但我移动到一个新主机(运行ubuntu),它的行为不同 在新主机上,apache注意到有一个foo.php,并直接调用它。换句话说,格式为/foo/bar的URL被视为/foo.php。如果我将foo.php重命名为foo\u junk.

我有以下形式的重写规则:

RewriteRule ^foo/([a-zA-Z0-9]+)$ foo.php?arg=$1 [qsa,nc]
它采用
/foo/bar
格式的URL,并将其更改为
/foo.php?arg=bar

它在本地正常工作,在我的旧主机上工作,但我移动到一个新主机(运行ubuntu),它的行为不同

在新主机上,apache注意到有一个foo.php,并直接调用它。换句话说,格式为
/foo/bar
的URL被视为
/foo.php
。如果我将
foo.php
重命名为
foo\u junk.php
并将重写规则更改为

RewriteRule ^foo/([a-zA-Z0-9]+)$ foo_junk.php?arg=$1 [qsa,nc]
然后一切都开始了。所以这并不是因为我没有启用覆盖,或者我没有安装mod_rewrite或者其他什么。重写工作,它们只是在解析url过程中的不同点完成,而不是在本地完成

是否有此配置选项

尝试禁用:


本地机器和新主机之间的apache版本差异是什么?apache版本差异很少有这种影响!是的,我自己也遇到过。讨厌的小副作用。
Options -MultiViews