我一直无法通过searchfind答案。
我有一个网站(我不pipe理服务器)的服务器将服务于一个不同的文件比请求。 我第一次注意到这一点时,使用以下forms的文件名:
_foo.php
(单下划线)
如果我请求foo.php
(不存在),服务器返回_foo.php
。 “返回”我的意思是服务器决定我的意思是_foo.php
,处理php文件,并提供输出。
如果我请求afoo.php
, zfoo.php
或甚至__foo.php
(两个下划线)(这些文件不存在),服务器返回_foo.php
。
如果我请求aafoo.php
,服务器返回404。
总结一下:服务器似乎在做一个部分文件名匹配。
我的问题是:发生了什么事情,这是一个Web服务器的接受行为(或普通的mod /包/等的标准行为)?
听起来像你的虚拟主机有mod_speling运行。
phpinfo()页面将显示模块是否加载到apache中,或者您可以在.htaccess文件中盲目地尝试这个指令
<IfModule speling> CheckSpelling Off </IfModule>
(我没有检查上面ifModule语句….被警告!)
你将不得不和服务器pipe理员交谈,以获得明确的答案。 我们不知道他们设置了什么,也不能为任何人提供明确的信息来识别问题。 但是,是的,他们有可能重写规则和其他机制,可能造成这种情况。