我相信我正在寻找完成此行为的Apache设置或mod,因为我需要将其关闭或以某种方式更改它。这是交易:
我有自己的CMS,它有自己的路由器来处理重定向,包括404错误和漂亮的URL。 mod_rewrite规则可以很好地将相应的请求引导到这个路由器,但是有一个奇怪的情况会导致Apache吓坏,甚至从未将请求发送到路由器。
CMS内容的请求应该发送到路由器,因为它与文件系统中存在的文件或目录不匹配。实际发生的是某种奇怪的请求,它找到了contact.form.php文件,但不知何故仍然导致Apache给出了自己的404错误。
路由器旨在捕获404错误,因此永远不会看到Apache的404屏幕。在联系人“目录”之外为该域输入的所有URL(无论多么荒谬)都可以访问我的路由器并检索正确的内容或显示我的404页面。
到目前为止我提出的解决方法:
冲突显然与匹配PHP文件名第一部分的“目录”名称有关。只要满足此条件,就会出现此行为,并且在不满足此条件时不存在此行为。不幸的是,使用CMS,我永远无法保证“目录”名称不会与PHP文件名冲突。出于这个原因,我的重点是调整Apache。
我搜索了各种关键字组合,我无法在任何地方找到答案。有什么想法吗?
答案 0 :(得分:1)
经过大量搜索后,在其他地方找到了答案。
问题是选项MultiView 已开启。
对我来说,我使用的是虚拟主机,但我在mac OSX Lion上的apache的user.conf文件中配置了我的大部分设置。我不确定我是否添加了这个,或者它是否已经存在...
这就是我做的
<强>替代强>
如果您没有看到任何内容,可以添加选项-MultiViews。
如果上述内容不适用,您也可以编辑httpd.conf文件。
如果使用虚拟主机,则可以编辑httpd-vhosts.conf文件。对于每个站点,编辑标签内的MultiViews选项。通过添加“Options -MultiViews”或删除“Options MultiViews”(如果存在)。
希望这有助于其他人...