2013-07-13 3 views
0

Я пытаюсь исправить ошибку «soft404»Правильный тип ошибки мягкий 404

Я прочитал эту 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

Если вы хотите исправить ваш мягкий 404, просто удалите заголовок «Местоположение». Вот и все –

+0

смотри мое редактирование :) – mpgn

+0

Да, это то, о чем говорил Лоуренс. Но, пожалуйста, различайте ошибку «Страница не найдена» с «Страница существует, но есть временная проблема загрузки» –

ответ

1

Вы не совсем понимаете смысл ошибки 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.

+0

Я редактирую свой код. ничего общего с PDO ... Я говорю о soft 404 not error 404 ... – mpgn

+0

Soft 404 - это просто неправильный способ отправки 404. Каков ваш вопрос? –

+0

Мой вопрос: Как исправить ошибку типа soft404? – mpgn