首页 > 解决方案 > 404 错误不适用于 /dir/file.php

问题描述

好的,我会发布这个问题,希望你能理解我所说的使用你的技能和知识

我在根目录中有一个 404 错误文件,名为error404.html. 同样,我有一个 .htaccess 文件,其中包含以下内容:

ErrorDocument 404 /error404.html

如果您访问我的网站https://www.mysite/index.php,效果很好。

如果您尝试找到一个不存在的页面,例如https://www.mysite/nothere.php,我的错误页面就会出现并且可以正常工作。

如果你来到我的网站并转到https://www.mysite/other/apage.php一切都好。如果您尝试找到一个不存在的页面https://www.mysite/other/nothere.php我的错误页面会出现并且可以正常工作

所以这是我的问题:

你来到我的网站并转到https://www.mysite/other/apage.php,这个页面应该可以工作,但你犯了一个错误,实际上输入了https://www.mysite/other/apage.php/nothere .php,而不是显示我的 404 错误,它尝试显示 https://www.mysite/other/apage.php缺少文本和图片

为什么我没有得到 404 错误页面?

标签: apache.htaccesshttp-status-code-404

解决方案


这是 PHP 请求处理程序的正常行为,因为other/apage.php它是一个有效文件,并且AcceptPathInfo指令默认设置为 On。

要明确禁用此行为:

  • 在您的 Apache 配置中
<Directory /var/www/html>
  AcceptPathInfo Off
</Directory>
  • 或在您的 .htaccess 文件中
AcceptPathInfo Off

推荐阅读