Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как настроить обработку 404 ошибки для DLE 10.3?

Как настроить обработку 404 ошибки для DLE 10.3?


     11.06.2015    Общие вопросы, Хаки, Ламерские вопросы    3221

вопрос
Не получается настроить обработку ошибки для урлов вида:
site.ru/sdfsdfsdfsdf
и
site.ru/cat/1-novostsdfsdfsdf.html

в первом случае открывается страница шаблона с пустым {content} ответ сервера 200
во втором случае открывается оригинальная статья site.ru/cat/1-novost.html с уролом site.ru/cat/1-novostsdfsdfsdf.html , ответ сервера 200.

Добавление в .htaccess ErrorDocument 404 /404.html ничего не дает, кроме как обработка страниц, не связанных с DLE : например site.ru/novost.htmlsdf

Ответил: PunPun


Открываем /engine/egine.php находим :
if (!$category_id) $category_id = 'not detected';

Меняем на :
if (!$category_id AND $view_template != "rss") {
    header("HTTP/1.0 404 Not Found");
    header("Status: 404 Not Found");
    @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
    exit();
}

4 комментария

PunPun
Эксперт

PunPun - 4 сентября 2015 09:09 -

***Комментарий удален***

well​

MegaTron
Юзер

MegaTron - 4 сентября 2015 09:09 -

site.ru/cat/1-novostsdfsdfsdf.html
так есть же стандартная функция "Обрабатывать неверные URL"

vaselcaseras
Юзер

vaselcaseras - 4 сентября 2015 15:25 -

Gameer,
MegaTron,

спасибо

kyvrsant
Юзер

kyvrsant - 19 ноября 2017 20:09 -

У меня на движке 11.3 не совсем захотело работать решение в ответеь.
А все дело в том, что страница 404.html была создана через форму статических страниц. Пришлось вытянуть весь код этой страницы и создать новую 404.html, и залить в корень сайта.

А если пошагово, то:
1. Создал 404 страницу через статические страницы в админке сайта.
2. Открыл созданную страницу, скопировал ее исходный код и вставил в новый файл под названием 404.html.
3. Залил файл 404.html в корень сайта.
4. Удалил страницу которую создал в первом пункте, она уже нам не нужна.
5. Сделал правки в .htaccess после
RewriteEngine On

вставил
ErrorDocument 404 /404.html 
И без этой правки все нормально работает но на всякий случай пускай…

6. Сделал правку от PUNPUN
Открываем /engine/egine.php находим :

if (!$category_id) $category_id = 'not detected';


Меняем на :

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


Работает.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх