通过重定向到主页来处理404错误的最佳方法

ZTe*_*ter 1 html php apache

我已经搜索过,阅读了很多,但仍然无法找到方法,以实现我的目标.现在我甚至认为这是不可能的.是吗?

我想要正确处理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")在标题行之后添加一个它就行不通,服务器说该文件不存在.

我该怎么办?

Alf*_*lfo 5

尝试这样的事情:

<?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响应,然后被正确地重定向到另一个页面成功.


Pog*_*dis 5

我建议修改 .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)

当然可以很好地处理事情和其他错误消息。