Правильная обработка 404 ошибки

dvu-v
На сайте с 30.05.2008
Offline
128
1866

Вопрос вполне нубовский, поиск юзал что нужно не нашел.

В общем такая суть.

Нужно чтобы на сайте 404 ошибка обрабатывалась как на этом сайте, то есть без редиректа на отдельную страницу, адрес в строке не менялся.

Сайт на php, база используется, админка, в общем интернет магазин.

У кого какие мысли?

Сейчас вот что:

DirectoryIndex index.php index.html
ErrorDocument 404 http://www.site.ru/404.htm
Options FollowSymLinks
RewriteEngine On
RewriteBase /
kosenka
На сайте с 02.12.2007
Offline
122
#1

Если используется CMS, то в CMS должна быть встроена поддержка для обработки таких страниц.

Если никакой CMS не используется, то можно сделать так:

1) ищем запись (товар)

2) товар есть?

2.1) - товар есть и мы его показываем

2.2) - товара нет, подсовываем "пустую страницу"


if(!empty($tovar))
{
echo $tovar;
}
else
{
echo 'товара нет. все ушли на базу.';
}

в переменной $tovar должен быть результат поиска товара

вот... как-то так

dvu-v
На сайте с 30.05.2008
Offline
128
#2

CMS есть, про поддержку подробней можно?

kosenka
На сайте с 02.12.2007
Offline
122
#3
dvu-v:
CMS есть, про поддержку подробней можно?

Простите, но это вы уже должны сами узнать у тех, кто вам предоставил CMS.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4

Можно хитрее: http://online16.ru/404.php?/popular_place3/

:)

т.е. попробуйте пройти по ссылке: http://online16.ru/popular_place3/

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
dvu-v
На сайте с 30.05.2008
Offline
128
#5
kosenka:
Простите, но это вы уже должны сами узнать у тех, кто вам предоставил CMS.

Это понятно, возможно тупо звучит но как называются эти страницы технически? узнать не проблема, в соседний отдел идти 10 секунд.

kosenka
На сайте с 02.12.2007
Offline
122
#6
LEOnidUKG:
Можно хитрее: http://online16.ru/404.php?/popular_place3/
:)

т.е. попробуйте пройти по ссылке: http://online16.ru/popular_place3/

Это все хорошо, но ТС просил не менять url (без редиректа на отдельную страницу), а у вас идет переадресация.

dvu-v
На сайте с 30.05.2008
Offline
128
#7
kosenka:
Это все хорошо, но ТС просил не менять url (без редиректа на отдельную страницу), а у вас идет переадресация.

именно так:)

kosenka
На сайте с 02.12.2007
Offline
122
#8
dvu-v:
Это понятно, возможно тупо звучит но как называются эти страницы технически? узнать не проблема, в соседний отдел идти 10 секунд.

У каждой CMS свои обработчики "ошибок", тут сложно что-либо сказать со 100% уверенностью.

Может быть, что-то типа "error pages" или что-то похожее.

dvu-v
На сайте с 30.05.2008
Offline
128
#9
kosenka:
У каждой CMS свои обработчики "ошибок", тут сложно что-либо сказать со 100% уверенностью.
Может быть, что-то типа "error pages" или что-то похожее.

Понятно, счас пойду спрошу.

Sapega
На сайте с 09.02.2009
Offline
68
#10
dvu-v:
В общем такая суть.
Нужно чтобы на сайте 404 ошибка обрабатывалась как на этом сайте, то есть без редиректа на отдельную страницу, адрес в строке не менялся.

Как здесь уже справедливо отметили, надо ковырять код CMS. Дело в том, что в CMS часто реализация обработки ошибок состоит в том, что идет редирект на главную страницу сайта или же на страницы разделов. Задача как раз и состоит в том, чтобы слегка подправить код обработки ошибки.

Например, так:


header('HTTP/1.1 404 Not Found');
include '404.html';
exit;

Где файл 404.html – это обычный html, созданный для удобства посетителей, в который мы можем вставить меню сайта, его основные разделы, поиск по сайту, инструкции для посетителей и многое другое.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий