我在我的网站上创建了一个名为file-not-found.php 的自定义404页面。我将 .htaccess 文件更改为
ErrorDocument 404 /file-not-found.php
这工作完全正常,我还使用Google网站管理员工具获取了一个不存在的网址,并显示正确的404错误。
我在特定时间段后删除了我的文章。所以我决定做的是如果用户要查找已移除的内容,请将用户的文件名为“找不到状态代码”的用户重定向。所以在文章页面中我写了以下代码
<?php
if(mysql_num_rows($sql)!=0){
//display content
}else{
//redirect to custom error page
header('HTTP/1.0 404 Not Found');
header('location:file-not-found.php');
exit();
}
?>
现在,如果用户请求删除的内容,则会重定向到自定义404页面。
但问题是,如果我从Google网站管理员工具中获取已删除的内容链接,则会返回状态200而不是404.
那么问题出在哪里请帮我纠正这个问题。谢谢。
答案 0 :(得分:1)
file-not-found.php
文件应包含header('HTTP/1.0 404 Not Found');
header('HTTP/1.0 404 Not Found');
之前删除header('Location:file-not-found.php');
,因为如果永久移动,则重定向代码应为301
,或者302
进行正常重定向。 source