首页 >后端开发 >php教程 >为什么我的 PHP 代码不会产生 404 错误?

为什么我的 PHP 代码不会产生 404 错误?

Patricia Arquette
Patricia Arquette原创
2024-11-11 06:25:02297浏览

Why Doesn't My PHP Code Produce a 404 Error?

解决 PHP 应用中的 404 错误困境

在 PHP 开发中,有时需要返回 404 错误来表示资源无法访问成立。但是,您可能会遇到这样的情况,如下所示的代码不会产生预期的 404 错误。

if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
    header('HTTP/1.0 404 Not Found');
}

您可能会得到一个空白页面,而不是显示 404 错误。问题在于 Web 服务器和 PHP 在处理 404 响应时如何交互。

如提供的答案中所述:

  • Web 服务器通常自行处理 404 错误,显示指定的 404 页面.
  • 然而,PHP 通过接收请求并发送 404 来覆盖此过程header.

这会导致 Web 服务器绕过其自己的 404 处理机制。因此,Web 服务器发送的不是预期的 404 页面,而是 PHP 生成的任何内容,在本例中为空页面。

要解决此问题,PHP 应在 Web 服务器启动之前发送 404 标头处理 PHP。这确保网络服务器可以正确处理响应并显示适当的 404 页面。

更正的代码:

header('HTTP/1.0 404 Not Found');
exit(); // To prevent any further PHP processing

以上是为什么我的 PHP 代码不会产生 404 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn