我有一个奇怪的apache行为。我在虚拟服务器root中有文件test.php,它由url:example.com/test.php
打开,但如果我尝试打开此网址example.com/test.php/noexists.php
,我还会看到example.com/test.php
文件的内容。
文件noexists.php
已存在于服务器上,但服务器未返回404错误。如何为非现有文件获取404错误?
Apache 2.2,虚拟服务器配置:
<VirtualHost *:80>
ServerAdmin info@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
ErrorLog ${APACHE_LOG_DIR}/example.com.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/example.com.log combined
</VirtualHost>
答案 0 :(得分:2)
“假设位置
/test/
指向仅包含的目录 单个文件here.html
。然后请求/test/here.html/more
和/test/nothere.html/more
都将/more
收集为PATH_INFO“ [source]
这是默认行为。但是,您可以在apache配置文件中使用它来更改它。
AcceptPathInfo Off