1

Тема: Не работает ошибка 404, если не правильно набрано название категории

Здравствуйте! помогите разобраться в следующей проблеме:

При неправильно написанном адресе категории не выдает ошибки 404, например:  категория /igri/, можно написать /igвыаыri/ или /igri/вава, и вообще даже если после домена и слэша написать любые символы сервер выдаст 200 ок, и загрузит шаблон сайта с пустой страницей и титлом от главной.

Совсем другое дело с новостями:

Если не правильно ввести название новости  /6815-zvonki.html, например: /6815-zvвыавonki.html, то редиректит на правильный адрес /6815-zvonki.html, если изменить ID или вписать любые символы после точки, например /68ыавы15-zvonki.htmва то выдает ошибку 404, то есть все работает правильно.

Вопрос: Как сделать, чтобы появлялась ошибка 404, при неправильно набранных названиях категорий??

У меня (dle 10.2).

2

Re: Не работает ошибка 404, если не правильно набрано название категории

Такая же проблема на одном сайте (10.2)... Присоединяюсь к вопросу...

Re: Не работает ошибка 404, если не правильно набрано название категории

Ответ тут http://alaev.info/blog/post/3294

4

Re: Не работает ошибка 404, если не правильно набрано название категории

Вы вероятно вот этот код имели ввиду:

//решение проблемы с категориями, которых не существует
            if (!$category_id AND $view_template != "rss") {
                    header("HTTP/1.0 301 Moved Permanently");
                    header("Location: {$config['http_home_url']}");
                    die("Redirect");
            }
//решение проблемы с категориями, которых не существует

То есть будет перекидывать на главную, а желательно на /404.php...
можно ли вместо главной прописать /404.php?

Re: Не работает ошибка 404, если не правильно набрано название категории

vla90535564, Тогда заменить

{$config['http_home_url']}

на

{$config['http_home_url']}/404.php

6

Re: Не работает ошибка 404, если не правильно набрано название категории

Теперь при неправильно набранном адресе категории, (например /igвыаыri/ вместо /igri/ ) перенаправляет на стандартную страницу ошибки 404.html, вроде почти как и должно быть на мой взгляд, но сервер отдает не ошибку 404 на страницу   мой_сайт.ру/igвыаыri/   , а 301 редирект. А что если изменить немного код, подскажите как это будет правильнее сделать, вместо:

if (!$category_id AND $view_template != "rss") {
                    header("HTTP/1.0 301 Moved Permanently");
                    header("Location: {$config['http_home_url']}");
                    die("Redirect");
            }

что-то вроде:

if (!$category_id AND $view_template != "rss") {
                    header("HTTP/1.0 404 Not found");
                    header("Location: {$config['http_home_url']}");    <------- а здесь должен оставаться неправильно написанный адрес категории
                    die("Redirect");                    <-------- что здесь должно быть прописано???
            }

7

Re: Не работает ошибка 404, если не правильно набрано название категории

Подскажите друзья, как правильно редактировать код под мой нужды?????

8

Re: Не работает ошибка 404, если не правильно набрано название категории

АлаичЪ подскажи пожалуйста!!!!

Re: Не работает ошибка 404, если не правильно набрано название категории

vla90535564, Все нормально работает.
Если надо заменить 301 на 404 ошибку, то вот код:

if (!$category_id AND $view_template != "rss") {
                    header("HTTP/1.0 404 Not found");
            }

10

Re: Не работает ошибка 404, если не правильно набрано название категории

АлаичЪ, Теперь почти все верно:  остается не правильно набранный адрес в строке браузера, выдает 404 ошибку, но открывается белая страница.

Прописал следующее:

if (!$category_id AND $view_template != "rss") {
                    header("HTTP/1.0 404 Not found");
die();     
            }

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

11

Re: Не работает ошибка 404, если не правильно набрано название категории

vla90535564, Я не в курсе этого вопроса.

12

Re: Не работает ошибка 404, если не правильно набрано название категории

в .htaccess

ErrorDocument 404 /404.html

Можно еще вариант попробовать

if (!$category_id AND $view_template != "rss") {
                    header("HTTP/1.x 404 Not Found");
                    header("Status: 404 Not Found");
                   @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
die();      
            }

Добавлено: 02.06.2015 14:02

404.html замените на свой

13 (02.06.2015 17:02 отредактировано vla90535564)

Re: Не работает ошибка 404, если не правильно набрано название категории

svetlana, в .htaccess прописано ErrorDocument 404 /404.html
и код
if (!$category_id AND $view_template != "rss") {
                    header("HTTP/1.x 404 Not Found");
                    header("Status: 404 Not Found");
                   @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
die();     
            }
прописал, но получается тоже самое, то есть пустая страница...

Я так понял вот этот код @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html'); должен был загрузить страницу 404.html ??? Подскажите может есть еще варианты решения проблемы??

14

Re: Не работает ошибка 404, если не правильно набрано название категории

да вариантов то много придумать можно, знать бы еще что вы там вообще делаете и где smile

Такой проблемы изначально в движке нет, даже в старых версиях, скорее всего косяк в каких-то правках, которые вносили вы.
Я бы для начала проверила бы в чем вообще проблема, чтобы не возиться, достаточно сделать резервное копирование файлов движка и заменить как минимум \engine\modules, engine.php, init.php, index.php, и .htaccess в корне на оригинальные из движка, просто методом исключения найдите в каком месте проблема и тогда уже смотреть будем smile.

Добавлено: 03.06.2015 22:39

@require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
загружает 404.html в корне сайта, не статическую а именно лежащий на сервере файл.

15

Re: Не работает ошибка 404, если не правильно набрано название категории

svetlana спасибо, действительно в корне сайта создал страницу 404 и все заработало

16

Re: Не работает ошибка 404, если не правильно набрано название категории

Приветствую.

У меня такая проблема в конце адреса site.ru/%20) такие символы.

Яндекс проиндексировал страницу и добавил в поиск.

Помогите пожалуйста избавится от такого.