PHP 404 错误:了解最后一英里差距
尽管遵循看似正确的代码,为什么您的 PHP 应用程序无法显示 404错误并显示一个空白页面?
提供的代码可确保发送 404 错误标头。但是,它无法解释 Web 服务器与 PHP 处理响应方式的关键区别。
Web 服务器处理
通常,Web 服务器处理请求并且,如果找不到 URI 请求的文件,它会发送 404 标头并显示自定义 404 错误页面。
PHP 拦截
当 Web 服务器将请求委托给 PHP 页面,PHP 脚本负责生成标头和响应正文。这意味着尽管 PHP 发送了 404 标头,但 Web 服务器已经承诺显示 PHP 页面而不是标准 404 页面。
移交给 PHP
因此,PHP 脚本有效地接管了处理 404 错误的责任,这带来了两个挑战:
解决方案
要解决此问题,您必须显式处理 404 情况并自行输出错误消息。以下代码提供了示例:
if (strstr($_SERVER['REQUEST_URI'],'index.php')) { header('HTTP/1.0 404 Not Found'); echo '<h1>404 Not Found</h1>'; exit; }
以上是为什么我的 PHP 应用程序显示空白页面而不是 404 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!