【问题标题】:Unwanted Apache redirect from directory to file with same name不需要的 Apache 从目录重定向到同名文件
【发布时间】:2011-10-31 18:49:44
【问题描述】:

我相信我正在寻找实现此行为的 Apache 设置或 mod,因为我需要将其关闭或以某种方式更改它。这是交易:

我有自己的 CMS,它有自己的路由器来处理重定向、包含、404 错误和漂亮的 URL。 mod_rewrite 规则可以完美地将适当的请求定向到此路由器,但是有一个奇怪的情况导致 Apache 崩溃,甚至从未将请求发送到路由器。

  • 文件位于 www.example.com/contact.form.php
  • CMS 内容位于 www.example.com/contact/contact-us

CMS 内容的请求应该发送到路由器,因为它与文件系统中存在的文件或目录不匹配。实际发生的是某种奇怪的请求,它找到了 contact.form.php 文件,但不知何故仍然导致 Apache 给出自己的 404 错误。

路由器的设计目的是捕获 404 错误,因此永远不会看到 Apache 的 404 屏幕。在联系人“目录”之外为该域输入的所有 URL(无论多么荒谬)都会进入我的路由器并检索正确的内容或显示我的 404 页面。

到目前为止我想出的解决方法:

  • 将文件名更改为 form.contact.php -- 这会禁用任何最终可能存在于 www.example.com/form/... 中的 CMS 内容
  • 在 www.example.com/contact/ 创建一个空目录

冲突显然与匹配 PHP 文件名第一部分的“目录”名称有关。只要满足此条件,此行为就存在,不满足则不存在。不幸的是,使用 CMS,我永远无法保证“目录”名称不会与 PHP 文件名冲突。因此,我的重点是调整 Apache。

我搜索了各种关键字组合,但在任何地方都找不到答案。有什么想法吗?

【问题讨论】:

  • 备案:我完全不知道为什么在文件系统中创建空目录可以解决这个问题。
  • 看起来问题可能出在 Apache 试图猜测我的文件名的“内容协商”上。如果有人可以对我需要做什么提供一个可靠的解释,我会很乐意接受答案。
  • webmasters.stackexchange.com 可能是这个问题的更好的地方。
  • 我看了那里,但因为在这里找到了更多类似的问题和答案,所以我在这里问了。
  • 我在 mac osx lion 上的本地安装遇到了同样的问题。我以前从来没有这样过......

标签: php apache redirect


【解决方案1】:

经过大量搜索,在其他地方找到了答案。

问题是Options MultiView被打开了。

对我来说,我使用的是虚拟主机,但我在 Mac OSX Lion 上的 apache 的 user.conf 文件中配置了大部分设置。我不确定我是否添加了这个,或者它是否已经存在......

这就是我所做的

  1. 打开终端应用
  2. 类型:cd /etc/apache2/users
  3. 类型:ls
  4. 从打印出来的列表中,您应该会看到一个与您的用户名匹配的文件:USERNAME.conf,其中 USERNAME 是您的实际用户名
  5. 类型:sudo nano USERNAME.conf
  6. 您可能需要输入密码
  7. 找到这一行:Options Indexes MultiViews
  8. 将其更改为:选项索引
  9. ctrl+x 退出,提示保存文件时按“y”,询问文件名时输入

替代品

如果您没有看到任何内容,您可以添加 Options -MultiViews。

如果上述情况不适用,您也可以编辑您的 httpd.conf 文件。

如果你使用虚拟主机,你可以编辑你的 httpd-vhosts.conf 文件。对于每个站点,编辑标签内的 MultiViews 选项。通过添加“Options -MultiViews”或删除“Options MultiViews”(如果存在)。

希望这对其他人有所帮助...

【讨论】:

  • 这已经很老了,但这里有一个更新。它肯定与 MultiView 有关,因为我可以将其关闭,问题就消失了。但是,我仍然对为什么添加具有匹配名称的空目录有效地否定不需要的行为感到困惑。从那以后我一直在使用变通方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
  • 2015-04-23
  • 1970-01-01
相关资源
最近更新 更多