Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

404 Not Found - Отправляем корректный заголовок


afwollis

Recommended Posts

Много раз обсуждалось, вариантов решения несколько, но вот самый простой:

в самом начале файла /catalog/view/theme/[ваша тема]/template/error/not_found.tpl

вставить

<?php
header ("HTTP/1.1 404 Not Found");
?>

Спасибо, @riny.

Обращаем ваше внимание на то, что этот вариант нежелательно использовать, так как посылать заголовок из шаблона, мягко говоря, неправильно.

Позже опубликуем тут самое корректное решение.

Спасибо rb2 за волшебный пендель :ugeek:

Змінено користувачем afwollis
  • +1 1
Надіслати
Поділитися на інших сайтах

  • 2 weeks later...
  • 2 weeks later...
  • 2 weeks later...

maxun, маятваянипанимай

 

Вот содержимое not_found.tpl

 

<?php echo $header; ?><div id="contentwrapper"><?php echo $column_left; ?><?php echo $column_right; ?>
<div id="content"><?php echo $content_top; ?>
  <div class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>
  </div>
  <h1><?php echo $heading_title; ?></h1>
  <div class="content"><?php echo $text_error; ?></div>
  <div class="buttons">
    <div class="right"><a href="<?php echo $continue; ?>" class="button"><?php echo $button_continue; ?></a></div>
  </div>
  <?php echo $content_bottom; ?></div></div>
<?php echo $footer; ?>
 

 

Куда тут надо вписать

<?php
header ("HTTP/1.1 404 Not Found");
?>
 
Надіслати
Поділитися на інших сайтах


по этой ссылке можно проверить вывод заголовков как для разных браузеров, так и для поисковых роботов

 

Кстати, мне больше понравился вот такой совет:

 

В контроллерах продукта (catalog/controller/product/product.php), категории (catalog/controller/product/category.php), производителя (catalog/controller/product/manufacturer.php) и т.п. где это необходимо :)

 

перед


       if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl';
            } else {
                $this->template = 'default/template/error/not_found.tpl';
            }
 

 

нужно вставить

 

              $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found');
 

 

Змінено користувачем Zeppelin
  • +1 2
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

по этой ссылке можно проверить вывод заголовков как для разных браузеров, так и для поисковых роботов

 

Кстати, мне больше понравился вот такой совет:

 

В контроллерах продукта (catalog/controller/product/product.php), категории (catalog/controller/product/category.php), производителя (catalog/controller/product/manufacturer.php) и т.п. где это необходимо :)

 

перед

       if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {
                $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl';
            } else {
                $this->template = 'default/template/error/not_found.tpl';
            }
 

 

нужно вставить

 

              $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found');
 

 

Только появляется проблема - гуглбот получает на живых страницах 404...

Надіслати
Поділитися на інших сайтах


Только появляется проблема - гуглбот получает на живых страницах 404...

 

можешь пояснить, по какой причине это может происходить?

 

ЗЫ Скормил реальную страницу с внесенными вышеописанными изменениями ГуглоБоту.

Вот какой получился выод. Съел с удовольствием и даже страничку показал :) Весь вывод приводить не стану, смысла не вижу.

 

 

Просмотреть как Googlebot

Вот как поисковый робот Googlebot просканировал вашу страницу.

URL: http://selato.ru/accessories/stimpank-aksessuary/stimpank-chasy-karmannye/chasy-karmannye-s-rimskimi-tsiframi/

Дата: понедельник, 29 апреля 2013 г., 0:33:12 GMT-07:00

Тип робота Googlebot: Веб

Время загрузки (в миллисекундах): 743

 

Вот еще вывод инфы Тоже ГуглоБот.

 

http://www.bertal.ru/index.php?a772906/selato.ru/accessories/stimpank-aksessuary/stimpank-chasy-karmannye/chasy-karmannye-s-rimskimi-tsiframi/#h

 

HTTP/1.1 200 OK

Server: nginx/0.8.55

Date: Mon, 29 Apr 2013 07:38:27 GMT

Content-Type: text/html; charset=utf-8

Connection: keep-alive

X-Powered-By: PHP/5.2.17

Set-Cookie: PHPSESSID=fac2c6b53f4a440f56b5a46b19ec5be5; path=/

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Set-Cookie: language=ru; expires=Tue, 29-Oct-2013 07:38:27 GMT; path=/

Set-Cookie: currency=RUB; expires=Tue, 29-Oct-2013 07:38:27 GMT; path=/

Set-Cookie: personalRecentlyViewed=144; expires=Wed, 29-May-2013 07:38:27 GMT; path=/; domain=selato.ru

Content-Language: ru-RU

 

Причин для твоих сомнений я не вижу

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Ок - скорее всего причина в чем то другом - но если я закомментил эти строки в контроллерах - то все стало индексироваться. 

Где то есть косяк пока что грешу на shoppica2(о да я вляпался в этот "замечательный" шаблон)...

Надіслати
Поділитися на інших сайтах


  • 2 months later...

Обращаем ваше внимание на то, что этот вариант нежелательно использовать, так как посылать заголовок из шаблона, мягко говоря, неправильно.

Позже опубликуем тут самое корректное решение.

 

Здравствуйте, а подскажите корректного решения не нашли еще?

Надіслати
Поділитися на інших сайтах


Корректное написано в #6, @Zeppelin. Полный список файлов для 1.5.1.3 публиковался у меня в блоге - выдача http/404 вместо 200 для товаров, отключенных администратором. Для других версий всё то же самое - состав файлов будет либо точно такой же, либо с минимальными изменениями.

Ещё более правильным было бы отдавать этот заголовок в мнэ-э-э... "более едином" месте, что ли. Чтобы не вносить этот заголовок в десятке мест, а регулировать в одном (common/not_found.php, common/not_found.tpl). По этой причине Даниэль когда-то отфутболил этот патч, и до сих пор уже года 2 отдаётся 200 вместо 404.

Логичным был бы редирект на 404 страницу. Сейчас лишь включается tpl от 404 страницы, а контроллер не отрабатывает (если я правильно понимаю) - потому и не видно правильного заголовка.

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 4 months later...

Корректное написано в #6, @Zeppelin. Полный список файлов для 1.5.1.3 публиковался у меня в блоге - выдача http/404 вместо 200 для товаров, отключенных администратором. Для других версий всё то же самое - состав файлов будет либо точно такой же, либо с минимальными изменениями.

Ещё более правильным было бы отдавать этот заголовок в мнэ-э-э... "более едином" месте, что ли. Чтобы не вносить этот заголовок в десятке мест, а регулировать в одном (common/not_found.php, common/not_found.tpl). По этой причине Даниэль когда-то отфутболил этот патч, и до сих пор уже года 2 отдаётся 200 вместо 404.

Логичным был бы редирект на 404 страницу. Сейчас лишь включается tpl от 404 страницы, а контроллер не отрабатывает (если я правильно понимаю) - потому и не видно правильного заголовка.

 

Здравствуйте!

У меня проблема такая: при нажатии в блоке Категории на ссылку Комплектующие, если это происходит на хостинге, то вылетает сообщение

1)

Error occurred: 404 - not found

Apache Server ....при этом в адресной строке http://site.ru/desktops
 
2) если на локальном проделать тоже самое, то открывается страница XAMPP (аналог Денвера) и в адресной строке адрес XAMPP
 
Честно говоря, не совсем понимаю относится ли описание проблемы в данной ветке форума к моей тоже
Попадает ли моя проблема под это описание?
Надіслати
Поділитися на інших сайтах


поисковику пофигу что там в адрессной строке - он обробатывает ответ сервера и заголовок

PS а то что у Вас не работает чпу - это проблема htaccess скорее всего...переименуйте его в .htaccess
и прочитайте вот эту ветку: тык

  • +1 1
Надіслати
Поділитися на інших сайтах


 

поисковику пофигу что там в адрессной строке - он обробатывает ответ сервера и заголовок

PS а то что у Вас не работает чпу - это проблема htaccess скорее всего...переименуйте его в .htaccess
и прочитайте вот эту ветку: тык

 .htaccess переименован

 

может ли это быть связано с последствиями установки некоторых модулей seo???

 

Кстати, такое происходит со всеми ссылками на продукты Apple

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.