Перейти к содержанию

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

Уважаемые

Подскажите плиз в чем дело. Скрипт не отдает ошибку 404, а дает только 200.

Версия 1.4.7 сайт www.volgotime.ru Не хватает ума где что подправить

Поделиться сообщением


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

Что то не видно движения, или сложный вопрос

Поделиться сообщением


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

УважаемыеПодскажите плиз в чем дело. Скрипт не отдает ошибку 404, а дает только 200.Версия 1.4.7 сайт http://www.volgotime.ru Не хватает ума где что подправить

Не понятен суть вопроса :)

Поделиться сообщением


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

При регистрации на Яше сайт должен иметь возможность отдавать "Ошибка 404", а скрипт отдает "Ошибка 200" то есть введя после http://www.volgotime.ru любое слово останешся на главной странице и нет извещения что данная страница не существует-а это не есть гуд с позиции ПС

Поделиться сообщением


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

За неделю админы так и не соизволили ответить, здорово...........

Поделиться сообщением


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

На оригинальном форуме как-то поднимали этот вопрос.

Daniel (архитектор движка) принципиально не отдает ошибку 404 для несуществующих страниц. Т.е. текст «страница не найдена» будет выведен, но для страницы будет передан код HTTP 200 OK.

Там на форуме предложили решение:

1. в контроллере catalog/controller/error/not_found.php перед строкой

$this->response->setOutput($this->render(TRUE), $this->config->get('config_compression'));
добавляем

$this->response->addHeader('HTTP/1.1 404 Not Found', false);
2. в контроллере catalog/controller/common/seo_url.php находим ветвление

if ($query->num_rows) {.........}
и добавляем ему ветку else:

else {  $this->request->get['route'] = 'error/not_found';  return $this->forward($this->request->get['route']);}
  • +1 1

Поделиться сообщением


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

Не получилось........Может в контроллере catalog/controller/common/seo_url.php я что то напутал. Нельзя ли получить начинающему полный измененный файл, спасибо

Поделиться сообщением


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

Чего то не хватает Fatal error: Call to a member function http() on a non-object in /catalog/controller/error/not_found.php on line 11

Поделиться сообщением


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

Если я правильно понял то в строку №11 надо добавить урл страницы 404

Поделиться сообщением


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

Видимо просто конфликт версий. (я всё это дело городил под 1.4.0)

В последних версиях OC урлы строятся таким образом:

HTTP_SERVER . 'index.php?route=common/home'

Ну Вы весь файл (not_found.php) не заменяйте, добавьте только необходимую строчку:

$this->response->addHeader('HTTP/1.1 404 Not Found', false);

А с seo_url.php по идее проблем быть не должно.

  • +1 1

Поделиться сообщением


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

Не прокатило Fatal error: Call to a member function rewrite() on a non-object in /catalog/controller/module/information.php on line 18,поменял файлы из 1.4.8 результат тот же, трагедия ........... :)

Поделиться сообщением


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

Не прокатило Fatal error: Call to a member function rewrite() on a non-object in /catalog/controller/module/information.php on line 18,поменял файлы из 1.4.8 результат тот же, трагедия ........... :)

В каком случае выскакивает эта ошибка?

Открыл ваш сайт, добавив абракадабру в урл, вот что получается:

http://www.volgotime.ru/fghdfgdfg

GET /fghdfgdfg HTTP/1.1

Host: http://www.volgotime.ru

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 WebMoney Advisor

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: ru,en-us;q=0.7,en;q=0.3

Accept-Encoding: gzip,deflate

Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7

Keep-Alive: 115

Connection: keep-alive

Cookie: language=ru; currency=RUB; PHPSESSID=f7ce1712df786fd5b755afd43adfb770

HTTP/1.1 404 Not Found

Date: Sat, 03 Jul 2010 19:19:00 GMT

Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.13

X-Powered-By: PHP/5.2.13

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

Keep-Alive: timeout=15, max=90

Connection: Keep-Alive

Transfer-Encoding: chunked

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

По-моему, это то, чего и требовалось добиться.
  • +1 1

Поделиться сообщением


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

Не совсем то. Надо было чтобы на отсутствующей странице вылазила страница 404, а не таже главная. При добавлении сайта в Яшу, он ее(ошибку) считает 200 и не возможно подтвердить права на сайт, только через meta name, что и пришлось всунуть в home.tpl

Поделиться сообщением


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

В одном из последних релизов баг исправлен.

Поделиться сообщением


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

В одном из последних релизов баг исправлен.

нихера он не исправлен!

У кого SEO урл - срочно выставляйте 404 ошибку как завещал brevis.

Его сайт http://vkorobke.lg.ua единственный из примеров магазинов opencart у кого решена эта ПРОБЛЕМА.

А то улетите из индекса яндекса на раз-два (как я) или вас вылетят...

Поделиться сообщением


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

С 404 ошибкой не работал, из индекса яндекса не вылетает ни один сайт, что я делаю не так?

Поделиться сообщением


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

С 404 ошибкой не работал, из индекса яндекса не вылетает ни один сайт, что я делаю не так?

Есть раздел/страница сайта, предположим www.site.ru/moloko

В индекс яндекса, случайно или нет, попадает страница www.site.ru/moloko/fgvhbnj или www.site.ru/moloko/ertyughfv - любая вариация, контент которой без 404 ошибки один в один с исходной. Яндекс видит дублирование контента и исключает из индекса нашу страницу www.site.ru/moloko

Все, дальше слезы, переписка с Платоном и мучительное восстановление позиций страниц.

ЗЫ у меня "вылетели" самую продающую страницу http://www.le-magasin.ru/electronnye_sigarety - можете проверить, сейчас ее нет в индексе, но Платон уже пообещал вернуть)

Поделиться сообщением


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

У меня версия Version 0.2.0

Все строки, которые надо было вписывать вручную в этой версии уже есть (эти файлы во вложении)

Но при анализе проблемы в rookee, проблема сохраняется

Подскажите пожалуйста в чем может быть проблема.

Спасибо.

seo_url.php

Поделиться сообщением


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

актуально или нет? последняя версия OC отдает таки код статуса 404?

Поделиться сообщением


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

актуально или нет? последняя версия OC отдает таки код статуса 404?

404 отдает все правильно а вот страница выключенного товара отдает статус 200ок что не есть хорошо но это я буквально на днях такое нарыл...

Поделиться сообщением


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

страница выключенного товара отдает статус 200ок что не есть хорошо

И правда... Интересно, этот косяк больше никого не волнует?

ЗЫ. Диабло: post-5108-0-68920800-1329772863_thumb.jpg :evil:

  • +1 1

Поделиться сообщением


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

Ау, дядьки программисты!!!! Вы хде??? Проблема реально существует. Никто не знает как решить? Или все считают, что отдавать статус 200ОК на товар, которого нет в каталоге (он выключен в админке) - это нормально?

Поделиться сообщением


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

Решил вроде бы

В контроллере продукта

	    $this->document->setTitle($this->language->get('text_error'));
	    $this->data['heading_title'] = $this->language->get('text_error');
	    $this->data['text_error'] = $this->language->get('text_error');
	    $this->data['button_continue'] = $this->language->get('button_continue');
  
   $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found');
  
	    $this->data['continue'] = $this->url->link('common/home');
   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');
  • +1 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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