仅通过严格路径返回文件

时间:2014-10-15 07:54:39

标签: apache virtualhost

我有一个奇怪的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>

1 个答案:

答案 0 :(得分:2)

  

“假设位置/test/指向仅包含的目录   单个文件here.html。然后请求/test/here.html/more   和/test/nothere.html/more都将/more收集为PATH_INFO“    [source]

这是默认行为。但是,您可以在apache配置文件中使用它来更改它。

AcceptPathInfo Off