Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


afwollis
 Поделиться

Рекомендованные сообщения

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

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

вставить

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

Спасибо, @riny.

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

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

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

Изменено пользователем afwollis
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Почему может не редиректить на not_found.tpl

Или как правильно это прописать?

Сейчас что ни вобью - все одно выдает вбитые URL вместо спец страницы.

Ссылка на комментарий
Поделиться на других сайтах


  • 2 недели спустя...
  • 2 недели спустя...

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 недели спустя...

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

 

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

 

В контроллерах продукта (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 недели спустя...

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

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

Ссылка на комментарий
Поделиться на других сайтах


  • 2 месяца спустя...

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

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

 

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

Ссылка на комментарий
Поделиться на других сайтах


Корректное написано в #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 месяца спустя...

Корректное написано в #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

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.