Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Как настроить 404 ошибку

Сбственно вопрос, в шопосе когда обращаешься к несуществующей странице , то просто грузится главная, как сделать, чтобы выдавал 404 ошибку, ну и загружалась страница, что такой страницы не существует? За ранее спасибо за ответ.


если правильно понял, может это?
в папке тема/module есть файл error_message.html



Сбственно вопрос, в шопосе когда обращаешься к несуществующей странице , то просто грузится главная, как сделать, чтобы выдавал 404 ошибку, ну и загружалась страница, что такой страницы не существует? За ранее спасибо за ответ.

у вас, наверное, чпу включен?


Да включен, но проверил на локальном хостинге хоть включен, хоть нет все равно перекидывает на главную.


скиньте сюда /manager.php


Прикрепил


создаете информационную страницу с текстом, говорящим о том, что юзер заблудился, присваиваете ей URL 404.html (например) и делаете в manager.php вот такой замут после 160-й строки:

header('HTTP/1.1 404 Not Found');
header('/404.html');
//$PHP_SELF = '/index.php';
//include('index.php');

по вашему вкусу можно и '/404.html', и 'http://сайт/404.html'. вроде второй вариант корректнее.
собственно, так я у себя эту проблему решил. авось есть костыли и попрочнее :)

на всякий пожарный прикрепляю поправленный файлик


добавка и поправка
в .htaccess дописать:

ErrorDocument 404 /404.html

и в manager.php вместо
header('/404.html');

вставить
print file_get_contents('http://' . $_SERVER['HTTP_HOST'] . '/404.html');

так будет корректно отдаваться 404-й код


ага, а теперь у меня вопрос: как сделать, чтобы страница /404.html отдавала код 404, а не 200?


Создать в корне движка файл, например 404.php, а НЕ информационную страницу
и вот в нем уже отдавать заголовок header('HTTP/1.1 404 Not Found');
Как вариант замутить как тут написано http://ruseller.com/lessons.php?rub=37&id=1392


И еще такой вопрос дабы не плодить темы. Если просто в корень сайта залить любой html файл  то при прямо обращении к нему грузится сайт а не эта страница, как сделать так. чтобы грузилась именно страница?


проще изменить расширение.
если это для верификации акков гугла или всяких сервисов, то у большинства можно метатег получить

Сделать .php, или htm
или сделать .php файл и в .htaccess добавить правило реврайта на html


не, я уже иначе намутил. в shop_content.php в начале прописал:

if ($_GET['coID'] == 21) {
    header('HTTP/1.1 404 Not Found');
}

21 - код информационной страницы с 404-й ошибкой.
а в manager.php сделал:
header('Location: http://сайт/404.html', true, 301);

а "header('HTTP/1.1 404 Not Found');" убрал нафиг оттуда.
теперь 404-я отдает 404, а несуществующие страницы 301-м редиректом отправляют на 404. это ведь валидно для поисковиков?

и плюс в /modules/error_handler.php раскомментировал последнюю строчку "header('HTTP/1.1 404 Not Found');"
вообще, наверное, нужно выдачу error_handler оформить под 404-ю страницу и все шишки переводить на него. или так нельзя?


ну и зачем столько правок когда можно создать один файл и поправить htaccess?
При этом редиректов не будет никуда, что лучше.

в error_handler.php не пойдет, так как он инклудится уже ПОСЛЕ header.php, что будет вызывать ошибку(у меня вызывает).


фишка в том, что строка в htaccess срабатывает только тогда, когда обращаешься к несуществующей не-ЧПУ ссылке, то есть http://сайт/wrjfhwu.php нормально перенаправит на 404 через ErrorDocument.
при включенном же ЧПУ и переходе по ссылке http://сайт/wrjfhwu.html htaccess (у меня, по крайней мере) уже не работает. поэтому по-любому приходится редиректить из manager.php, потому что по умолчанию в случае инвалидного адреса он редиректит на глагну


да. с ЧПУ косяк.


вот, а у человека ЧПУ :) и у меня тоже :)
поэтому вчера полдня трахался и таки натрахал вот такое вот решение


Источник



Copyright ShopOS