0

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

RewriteRule ^foo/([a-zA-Z0-9]+)$ foo.php?arg=$1 [qsa,nc]

它需要表单的 url/foo/bar并将它们更改为/foo.php?arg=bar

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

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

RewriteRule ^foo/([a-zA-Z0-9]+)$ foo_junk.php?arg=$1 [qsa,nc]

然后一切正常。所以这并不是我没有启用覆盖或者我没有安装 mod_rewrite 或任何东西。重写工作,它们只是在解析 url 过程中的不同点完成,而不是在本地完成。

有这个配置选项吗?

4

1 回答 1

2

尝试禁用MultiViews

Options -MultiViews
于 2009-01-19T16:37:27.563 回答