Apache does not generate a 404

2020-05-01 04:57发布

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.

2条回答
冷血范
2楼-- · 2020-05-01 05:24

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

查看更多
forever°为你锁心
3楼-- · 2020-05-01 05:29

/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
查看更多
登录 后发表回答