我尝试纠正错误“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;
}
?>
答案 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来说已经足够了。