Главная > Хаки > Страница ошибок 404, 403, 500 для DLE

Страница ошибок 404, 403, 500 для DLE


28.06.2012, 01:18. Разместил: Jerry
Делаем страницу для ошибок 404, 401, 400, 403, 500 для DataLife Engine.
Существует два варианта решения данного вопроса, опишу вам оба...

Вариант номер один:
1. Создаем в админпанели => статические страницы новую страницу с названием 404 в описании можно указать Ошибка 404!, дальше в текстовом поле пишите что пожелаете.
2. В файле .htaccess (находится в корне)

после
RewriteEngine On


добавляем

ErrorDocument 404 /404.html


Теперь при попытке получить прямой доступ к несуществующим файлам: вашсайт.ру/trololo.php или вашсайт.ру/trololo.jpg вместо того чтоб увидеть сообщение сервера пользователь попадет на созданную вами страничку.
Кроме того для этой страницы вы можете создать и использовать отдельный шаблон.

Аналогичным образом можно поступить и в случае с другими ошибками, например с 403 ошибкой.

Автор: CORSAIR


Вариант номер два:
В ".htaccess" ищем:

RewriteEngine On


Вставляем выше:


ErrorDocument 400 http://site.ru/index.php?do=found&400
ErrorDocument 401 http://site.ru/index.php?do=found&401
ErrorDocument 403 http://site.ru/index.php?do=found&403
ErrorDocument 500 http://site.ru/index.php?do=found&500
ErrorDocument 404 http://site.ru/index.php?do=found&404


Не забываем заменить адрес сайта!

В файле "engine/engine.php" ищем:

switch ($do) {


Вставляем ниже:

case "found":
    if(isset($_GET['400'])) {
        $title="неверный запрос (400)";
        $e=400;
    }elseif(isset($_GET['401'])) {
        $title="требуется атворизация (401)";
        $e=401;
    }elseif(isset($_GET['403'])) {
        $title="ограничение доступа (403)";
        $e=403;
    }elseif(isset($_GET['404'])) {
        $title="файл не найден (404)";
        $e=404;
    }elseif(isset($_GET['500'])) {
        $title="перезагрузка сервера (500)";
        $e=500;
    }else {
        $title="файл не найден (404)";
        $e=404;
    }

    $metatags['title'] = "Название сайта - {$title}";
    
    $tpl->load_template( $e.'.tpl' );
    $tpl->compile( 'content' );
break;


Не забываем создать шаблоны 400.tpl, 401.tpl, 403.tpl, 500.tpl, 404.tpl


Я бы посоветовал первый вариант. Ибо лишний раз ковырять код движка... зачем оно надо, если можно обойтись одним htaccess!? ;)
Вернуться назад