问题:假设一个 URL 正在请求一个不存在的文件,例如mydomain.com/index.php/bogus
没有名为“bogus”的文件夹,所以我希望得到“404 not found”响应,而是 Apache 将请求发送到 /index.php(确实存在)。为什么?如何将其更改为响应“未找到 404”?
我想,理论上,Apache 这样做是为了让我为文件夹“bogus”(但它不存在)生成一个自定义索引页面。但在实践中,通过返回一个 200 响应的页面,它会给搜索引擎和意外访问者造成混乱。我在“index.php”中的 PHP 代码不希望有这个 URL,因此它会在其动态导航例程中生成损坏的链接。
我尝试禁用索引 ( Option -Indexes
) 和目录索引 ( DirectoryIndex disabled
) 并删除 .htaccess ( AllowOverride None
)。这些都没有改变反应。我搜索了 stackoverflow,它有很多“如何提供文件而不是 404”,但事实恰恰相反:我希望 Apache 返回 404,而不是从文件系统的更高层提供 PHP 文件。
我的服务器环境是 Windows Server 2008、Apache 2.2.22 和 PHP 5.3。没有 mod_rewrite。