htaccess问题(“/ file /”提供file.php)

时间:2016-04-08 21:03:43

标签: macos apache .htaccess mod-rewrite

当我遇到一些奇怪的行为时,我开始在我的网站上实现mod_rewrite规则。我删除了我的htaccess文件进行此测试,将其从等式中删除。

我的本​​地开发网站位于http://dev.mydomain.com,是虚拟主机。

如果我去,例如“http://dev.mydomain.com/blog/”,该文件夹不存在,但apache找到匹配的php文件“blog.php”,而是显示该文件。

只有在匹配的php文件时才会发生这种情况 - 如果没有,例如“http://dev.mydomain.com/barfblurg/”我只得到404.

就像上面有一些额外的mod_rewrites网站htaccess所在 - 当/ file /无法解析时,它搜索其他匹配的文件而不是服务于此 - 但是没有其他的htaccess文件会产生影响,所以这可能是一个配置的东西?我在apache.conf或php.ini中看不到会导致此行为的任何内容。

(这也不会发生在我在其他地方的现场主持人身上,所以这绝对是配置的事情。)

有人指出我要把这种行为关掉,因为它干扰了我想做的网址重写?

(Apache2,OSX,10.10.5)

1 个答案:

答案 0 :(得分:0)

此行为是由于启用了选项MultiViews

MultiViews使用选项Apache's content negotiation modulemod_rewrite之前运行,并使Apache服务器匹配文件扩展名。因此/file可以在网址中,但它会投放/file.php

要关闭它,请使用:

Options -MultiViews

位于.htaccess或Apache config / vhost文件的顶部。