2010-10-13 2 views
1

У меня есть система динамического просмотра, которая отображает 30 обзоров на страницу, и по достижении 30 обзоров она разбита на страницы. Поэтому у меня есть страницы, такие какВозврат 404, если не существует страницы # PHP

/рецензии/город/Бостон/

/рецензии/город/Бостон/Page/2/

/рецензии/город/Бостон/Page/3/

и так далее, и так далее

к сожалению, Google, кажется, индексации страниц через то, что кажется умозаключения - такие, как

/рецензии/город/Бостон/Page/65/

Эта страница абсолютно не существует, и я хотел бы сообщить Google об этом. В настоящее время он отображает страницу обзора, но без отзывов. Я не могу себе представить, что это очень хорошо для SEO. Итак, что я пытаюсь сделать, если сначала проверить # из результатов моего MySQL-запроса, а если нет результатов, верните 404 и переместите их на домашнюю страницу или на другую страницу.

В настоящее время это то, что у меня есть.

if (!$validRevQuery) { 
    header("HTTP/1.0 404 Not Found"); 
    header("Location: /index.php"); 
    exit; 
} 

Я нахожусь на правильном пути?

+1

Я не буду выпускать 404, а затем перенаправить, его несколько противоречивый, просто сделайте достойную страницу 404. – Hannes

+0

Если вы хотите 404, и только поисковые системы поражают этот запрос, то почему бы просто не перенаправить на несуществующую страницу и пусть сервер обрабатывает все остальное? Не очень чистый, если пользователь нажимает на него, но он принимает только одну строку кода :-) – Kendrick

+0

Не обязательно. Есть ли какой-либо механизм проверки типа, который вы используете? –

ответ

4

Редирект - это код состояния, аналогичный 404. У вас не может быть двух кодов состояния.

Вам необходимо вывести статус 404 и одновременно отобразить тело ответа (= страницу с ошибкой).

if (!$validRevQuery) { 
    header("HTTP/1.0 404 Not Found"); 
    .... output full HTML structure here ..... 
    exit; 
} 
+0

Спасибо! Это было полезно! – Yev

0

Вы не можете как отправить код статуса 404, так и сделать перенаправление (обычно 3xx status code). Вы можете сделать только один из них: либо отправьте код состояния 404, либо документ с ошибкой или ответьте перенаправлением.

0

Как говорит Пекка, лучший вариант, чтобы сделать 404 статус, а затем положить 404 страницы код после этого. Это плохая практика для SEO, если вы всего лишь 301 (перенаправляете) страницу, потому что поисковые системы будут продолжать посещать страницу, чтобы увидеть, есть ли перенаправление.

Смежные вопросы