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

Не работает 404


Recommended Posts

При регистрации на Яше сайт должен иметь возможность отдавать "Ошибка 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
Надіслати
Поділитися на інших сайтах


Видимо просто конфликт версий. (я всё это дело городил под 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 результат тот же, трагедия ........... :)

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

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

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

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


  • 6 months later...

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

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

У кого 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 - можете проверить, сейчас ее нет в индексе, но Платон уже пообещал вернуть)

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


  • 9 months later...

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

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

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

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

Спасибо.

seo_url.php

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


  • 3 months later...

актуально или нет? последняя версия 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 користувачів

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

Important Information

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