显示 HTTP 状态 200 而不是 404 的 404 错误页面



我有以下代码用于执行重定向。如果我的$includeFile不存在,它将重定向到 404 页面。这是我index.php的片段

if ( !file_exists($includeFile) )
     Header( "HTTP/1.1 404 Page Not Found" );
     Header( "Location: http://legascy.com/404_error/");

但是http://legascy.com/404_error/显示HTTP状态200 OK而不是404。

如何解决这个问题?

您需要

将 404 的标头函数放在"404_error"页面上,而不是重定向的页面上。这是因为浏览器被发送到具有默认 200 状态代码的404_error。

if ( !file_exists($includeFile) ) {
     header("Location: http://legascy.com/404_error/");
}

在404_error/索引.php:

header("HTTP/1.1 404 Page Not Found");

您之前发送 404 错误代码的标头将被 Location 标头丢弃,浏览器会将用户带到新页面。您重定向到的页面可用,因此它将始终显示 200。

相关内容

  • 没有找到相关文章

最新更新