我已经搜索过,阅读了很多,但仍然无法找到方法,以实现我的目标.现在我甚至认为这是不可能的.是吗?
我想要正确处理404错误,所以我ErrorDocument 404 /404.php
在.htaccess文件中,我想向搜索引擎发送正确的标题header("HTTP/1.1 404 Not Found")
以忘记该页面,我也想将访问者重定向到/index.php?code=404
所以我可以告诉他有关他的内容正在寻找不可用,但仍然让他在网站上.
现在似乎一切都很好,直到我想重定向用户:然后服务器发出302消息,覆盖我以前的404标头,所以虽然我可以将用户发送到所需的位置,我仍然无法告诉searchbots说地址错了.
如果我include("index.php?code=404")
在标题行之后添加一个它就行不通,服务器说该文件不存在.
我该怎么办?
尝试这样的事情:
<?php
header("HTTP/1.0 404 Not Found");
echo '<html>
<head>
<meta http-equiv="Refresh" content="0;url=http://www.mysite.com/index.php?code=404" />
</head><body></body>
</html>';
?>
Run Code Online (Sandbox Code Playgroud)
我正在使用meta
重定向,因为否则会收到标题已发送的错误.
我使用Fiddler在localhost上测试了这个,并获得了正确的404响应,然后被正确地重定向到另一个页面成功.
我建议修改 .htaccess 以处理 404 的另一个建议。
添加类似的东西:
ErrorDocument 404 /404.php
Run Code Online (Sandbox Code Playgroud)
到您的 .htaccess 将为您很好地处理事情。
您可以将 404 错误模板放置在您想要的任何位置。例如,您可以将所有错误消息放在名为“errors”的文件夹中
ErrorDocument 404 /errors/404.php
Run Code Online (Sandbox Code Playgroud)
当然可以很好地处理事情和其他错误消息。