我有以下用于执行重定向的代码。如果我的$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。
如何解决这个问题?
答案 0 :(得分:1)
您需要在“404_error”页面上放置404的标题功能,而不是重定向的页面。这是因为浏览器被发送到404_error,它具有默认的200状态代码。
if ( !file_exists($includeFile) ) {
header("Location: http://legascy.com/404_error/");
}
在404_error / index.php上:
header("HTTP/1.1 404 Page Not Found");
答案 1 :(得分:0)
您之前发送404错误代码的标题会被Location标头丢弃,浏览器会将用户带到新页面。您重定向到的页面可用,因此它将始终显示200。