if I have /faq.php
on the server it can also be accessed via /faq.php/nonexistant.gif
why? I have made sure MultiViews are disabled. Why does the contents of /faq.php
get shown when I access the URI /faq.php/randomstuff.gif
? FYI, I have no htaccess file in the same directory.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
That is called path_info
. You can disable it using AcceptPathInfo Off
in the apache config. People generally use it as a fake mod rewrite when mod rewrite is not availalble.
http://httpd.apache.org/docs/2.2/mod/core.html#acceptpathinfo
回答2:
/nonexistant.gif
will be HTTP "PATH_INFO": http://www.ietf.org/rfc/rfc3875, section 4.1.5
Basically, the webserver will scan "down" a url until it hits an actual file. Anything after that file in the url becomes PATH_INFO.
http://example.com/some/path/leading/to/realfile.php/extra/stuff/that/becomes/path/info
^^^^^^^^^^^^^^^^^^^^--- real directories
^^^^^^^^^^^^--actual file, scanning stops here
^^-----onwards = path_info