【问题标题】:apache resolving urls before looking in .htaccessapache 在查看 .htaccess 之前解析 url
【发布时间】:2010-10-02 06:34:59
【问题描述】:

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

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

它采用/foo/bar 形式的网址并将它们更改为/foo.php?arg=bar

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

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

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

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

是否有此配置选项?

【问题讨论】:

  • 本地机器和新主机的apache版本有什么区别?
  • apache 版本差异很少有这种影响!

标签: apache .htaccess mod-rewrite apache2


【解决方案1】:

尝试禁用MultiViews:

Options -MultiViews

【讨论】:

  • 是的,我自己也遇到过。令人讨厌的小副作用。
猜你喜欢
  • 1970-01-01
  • 2012-01-24
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-29
  • 2021-11-26
  • 1970-01-01
相关资源
最近更新 更多