Вы не совсем понимаете смысл ошибки 404 и спутать его с 500 один.
Ошибка PDO не имеет ничего общего с существованием страницы. Это ошибка кода означает, что сайт испытывает временные проблемы. Таким образом, необходимо отправить 500 сообщений.
Говорят, что современные версии PHP должны позаботиться об этом, но у меня есть некоторые сообщения, которых нет. Единственным гарантированным способом, который мне известен, является использование php-fpm, так как отправка 503 в случае ошибки является одним из его основных функций.
В любом случае, по крайней мере, попробуйте установить display_errors = off в настройках PHP (ini или perdir).
Затем измените свой код на.
<?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.
Если вы хотите исправить ваш мягкий 404, просто удалите заголовок «Местоположение». Вот и все –
смотри мое редактирование :) – mpgn
Да, это то, о чем говорил Лоуренс. Но, пожалуйста, различайте ошибку «Страница не найдена» с «Страница существует, но есть временная проблема загрузки» –