正确的错误类型软404

时间:2013-07-13 16:06:55

标签: php http-status-code-404 google-webmaster-tools

我尝试纠正错误“soft404”

我读了这个https://support.google.com/webmasters/answer/181708?hl=fr所以我明白了。

要使用个性化页面404纠正此错误,我可以这样做:

<?php



    try{
         echo "Error, I fail to load the services I catch It ! (have imagination)";
    }
    catch(Exception $e){
        header("HTTP/1.0 404 Not Found");
        include 'page404.html';
        exit;
    }


?>

1 个答案:

答案 0 :(得分:1)

您不太了解404错误的含义,并将其与500错误混淆 PDO错误与页面存在无关。这是一个代码错误意味着网站遇到临时问题。因此,必须发送500。

据说现代PHP版本必须处理它,但我有一些报告说它没有。 我所知道的唯一有保证的方法是使用php-fpm,因为发送错误是发送503的核心功能之一。

无论如何,至少尝试在PHP设置(ini或perdir)中设置display_errors = off。
然后将代码更改为。

<?php
echo "Je me connecte a un module foireux et la page est introuvable.";
$pdo = new PDO("n'importe quoi !");

并且正确配置的PHP将自动响应500

然而,如果没有找到页面 - 你确实必须回复404。

<?php
$data = DB::getData("SELECT * FROM articles WHERE id=?", $_GET['id']);
if (!$data)
{
    throw new http404();
}

其中http404()是一个必须由全局异常处理程序处理的自定义异常。 发送404响应。只是一个

header("HTTP/1.0 404 Not Found");
exit;

对Google来说已经足够了。