2

我有以下代码用于执行重定向。如果 my$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。

如何解决这个问题?

4

2 回答 2

1

您需要将 404 的标头功能放在“404_error”页面上,而不是重定向的页面上。这是因为浏览器被发送到具有默认 200 状态代码的 404_error。

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

在 404_error/index.php 上:

header("HTTP/1.1 404 Page Not Found");
于 2013-01-25T08:02:03.693 回答
0

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

于 2013-01-25T08:02:15.697 回答