Страница для 404, какой должен быть ответ сервера?

Автор Тема: Страница для 404, какой должен быть ответ сервера?  (Прочитано 8239 раз)

Оффлайн planetaryiАвтор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 5
  • Сообщений: 76
  • Карма: 1

Оффлайн planetaryiАвтор темы

  • Пользователь
  • **
Подскажите, как поступить

У меня страница 404 дает ответ 200 ок
то есть если открываешь несуществующую страницу - то откроется 404, но формально там видимо какая-то ошибка, ответ сервера наверное должен быть 404?

Гугл ругается!

Дата последнего сканирования: 06.09.13
Дата обнаружения: 01.07.13

Целевой URL не существует, и ваш сервер не возвращает код ошибки 404 (файл не найден).
хотя на самом деле она конечно сразу открывается. И таких ошибок много, более 200

Что делать? как это исправить?


Оффлайн Cyrus

  • Бизнес оценка: (0)
  • Старожил
  • ****
  • СПАСИБО: 271
  • Сообщений: 484
  • Карма: 47
  • Пол: Мужской
  • Награды SEO-специалист

Оффлайн Cyrus

  • Старожил
  • ****
Если при запросе несуществующей страницы сервер не отдает ответ HTTP/1.1 404 Not Found, то для поисковых систем такая страница существует и они её могут проиндексировать, другое дело что в выдачу конечно такая страница вряд ли попадет, хотя гугл всё готов туда запихать что найдет и может и включит кучу таких страниц, так как они "существуют". Если при запросе несуществующей страницы идет редирект на специальную страницу с ошибкой 404 и она отдает ответ сервера HTTP/1.1 200 OK, то по мнению поисковиков это редирект, на сайте будет куча редиректов, а поисковые системы не очень любят редиректов кучу на сайте, не накажут, но и ничего хорошего это сайту не принесет, робот поредиректится и уйдет. Нужно чтобы страница ошибки 404 отдавала ответ сервера HTTP/1.1 404 Not Found.

Оффлайн planetaryiАвтор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 5
  • Сообщений: 76
  • Карма: 1

Оффлайн planetaryiАвтор темы

  • Пользователь
  • **
Если при запросе несуществующей страницы сервер не отдает ответ HTTP/1.1 404 Not Found, то для поисковых систем такая страница существует и они её можут проиндексировать, другое дело что в выдачу конечно такая страница вряд ли попадет, хотя гугл всё готов туда запихать что найдет и может и включит кучу таких страниц, так как они "существуют". Если при запросе несуществующей страницы идет редирект на специальную страницу с ошибкой 404 и она отдает ответ сервера HTTP/1.1 200 OK, то по мнению поисковиков это редирект, на сайте будет куча редиректов, а поисковые системы не очень любят редиректов кучу на сайте, не накажут, но и ничего хорошего это сайту не принесет, робот поредиректится и уйдет. Нужно чтобы страница ошибки 404 отдавала ответ сервера HTTP/1.1 404 Not Found.

да у меня редиректы, получается. чтобы вписать эту страницу в шаблон, отказов по 404 очень мало.
а как это сделать скажите? движок джумла.

да я уже создавала подобную тему.
абракадабра выдает ошибку 302, а открывает 404 страницу (которая и дает ответ 200ок)
я вообще не знаю этих тонкостей, как настроить сервер. даже ничего нагуглить не могу
« Последнее редактирование: 18-10-2013, 11:09:45 от planetaryi »

Оффлайн files

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 24
  • Сообщений: 85
  • Карма: 1
  • Пол: Мужской
  • Приведу в порядок Ваш сайт
    • Типичный Интернетчик

Оффлайн files

  • Пользователь
  • **
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 24
    • Сообщений: 85
    • Карма: 1
    • Пол: Мужской
    • Приведу в порядок Ваш сайт
      • Типичный Интернетчик
А что у вас тут?
 /templates/system/error.php

приведите код из этого файла

Оффлайн planetaryiАвтор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 5
  • Сообщений: 76
  • Карма: 1

Оффлайн planetaryiАвтор темы

  • Пользователь
  • **
А что у вас тут?
 /templates/system/error.php

приведите код из этого файла

<body>
<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: http://www.site.ru/404');
exit;
}
?>
</body>
</html>

да я его меняла, потому что стандартную ошибку 404 не знаю как вписать в шаблон, чтобы оставалась шапка, а лепить картину-заглушку не хотелось.
Про ответы сервера тогда не особо задумывалась.

Может быть вы подскажете как сделать так, чтобы внешне осталось все как есть, но ответ сервера был правильный.


Оффлайн files

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 24
  • Сообщений: 85
  • Карма: 1
  • Пол: Мужской
  • Приведу в порядок Ваш сайт
    • Типичный Интернетчик

Оффлайн files

  • Пользователь
  • **
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 24
    • Сообщений: 85
    • Карма: 1
    • Пол: Мужской
    • Приведу в порядок Ваш сайт
      • Типичный Интернетчик
Замените /templates/system/error.php
на:

Цитировать
<body>
<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.1 301 Moved Permanently");
  header('Location: ' . $this->baseurl . '/ссылка на вашу/404.htm');
exit;
}
?>
</body>
</html>


а вверху индексного файла темы пропишите код:

Цитировать
<?php
$sv = $_SERVER['REQUEST_URI'];
if ($sv == '/ссылка на вашу/404.htm') {
header("HTTP/1.0 404 Not Found");
} ?>

Удачи!

Оффлайн planetaryiАвтор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 5
  • Сообщений: 76
  • Карма: 1

Оффлайн planetaryiАвтор темы

  • Пользователь
  • **
Замените /templates/system/error.php
на:


а вверху индексного файла темы пропишите код:

Удачи!

спасибо!

индексного, в смысле index.php?

а еще скажите по синтаксису

header('Location: ' . $this->baseurl . '/ссылка на вашу/404.htm');
это значит писать header('Location: ' . $this->baseurl . 'http://www.site.ru/404');

Оффлайн planetaryiАвтор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 5
  • Сообщений: 76
  • Карма: 1

Оффлайн planetaryiАвтор темы

  • Пользователь
  • **
и еще вверху - это где? в боди?

Оффлайн files

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 24
  • Сообщений: 85
  • Карма: 1
  • Пол: Мужской
  • Приведу в порядок Ваш сайт
    • Типичный Интернетчик

Оффлайн files

  • Пользователь
  • **
  • Доп. информация
    • Бизнес оценка: (0)
    • СПАСИБО: 24
    • Сообщений: 85
    • Карма: 1
    • Пол: Мужской
    • Приведу в порядок Ваш сайт
      • Типичный Интернетчик
1) можете писать и header('Location: ' . $this->baseurl . 'http://www.site.ru/404'); (где http://www.site.ru/404 - ссылка на созданную вами страницу с ошибкой 404

2) в самом верху index.php (до вызова какого-либо кода)


Оффлайн planetaryiАвтор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 5
  • Сообщений: 76
  • Карма: 1

Оффлайн planetaryiАвтор темы

  • Пользователь
  • **
Здравствуйте, может я снова что не так делаю

вот что в ерроре

<body>
<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.1 301 Moved Permanently");
  header('Location: ' . $this->baseurl . 'http://www.site.ru/404');
exit;
}
?>
</body>

...на самом верху тоже прописала

<?php
$sv = $_SERVER['REQUEST_URI'];
if ($sv == 'http://www.site.ru/404') {
header("HTTP/1.0 404 Not Found");
} ?>

и теперь абракадабра показывает ошибку 301

это нормально да?

и гугл показывает

Ошибка 404
ошибок:230

то есть он их определил...и это нормально?


 

Похожие темы