0

我尝试纠正错误“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;
    }


?>
4

1 回答 1

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();
}

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

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

对谷歌来说就足够了。

于 2013-07-13T16:12:09.443 回答