Устанавливаем свою страницу ошибки 404

Своя страничка 404.

Для начала давайте узнаем. Что такое страница 404?
Ошибка 404 или Not Found («не найдено» ) стандартный код ответа HTTP о том, что клиент был в состоянии общаться с сервером, но сервер не может найти данные согласно запросу.
Ошибку 404 не следует путать с ошибкой «Сервер не найден» или иными ошибками, указывающими на ограничение доступа к серверу.
Ошибка 404 означает, что запрашиваемый ресурс может быть доступен в будущем, что однако не гарантирует наличие прежнего содержания.
Пользователи наиболее часто сталкиваются с ошибкой 404 при посещении т. н. битых или мёртвых ссылок. Т. о. делая ошибку 404 одной из наиболее узнаваемых ошибок в сети Интернет.

На сколько я знаю в DLE такое страницы нет, и когда пользователь переходит по битой ссылке, его перенаправляет на 'дефолтную' страницу 404 хостинг провайдера на котором установлен сайт. Это не очень красиво. Будем решать эту проблему(в DLE).

Установка
Открываем файл .htaccess в корне сайта и ищем в нем:
RewriteEngine On

Под этой строкой вставляем:
ErrorDocument 404 /404.html
Можно просто создать статистическую страницу с названием "404" Либо отдельно создать в корне сайта "404.html" и оформить его!

Вот и всё! теперь при переходе по битым ссылкам пользователя будет перекидывать на вашу страницу 404, а не на страницу хост провайдера.
Теперь давайте применим эту страницу для несуществующих или удаленных новостей на сайте.

Открываем файл /engine/modules/show.full.php и ищем:
elseif( !$news_found ) {
        @header( "HTTP/1.0 404 Not Found" );
        msgbox( $lang['all_err_1'], $lang['news_err_12'] );
}
Заменяем эти строки на:
elseif( ! $news_found ) {
        @header("HTTP/1.0 404 Not Found");
        @header("Status: 404 Not Found");
        @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
        exit();
}

Как-то так  blush
Данная тема еще будет развиваться!
Шаблоны DLE
Комментариев 5
  1. Антон
    Прежде чем советовать, сами пробовали? Попробуйте...
    1. Stanislavskiy11
      Не знаю как у вас, но я даже себе поставил и все нормально работает.
      1. Антон
        На чистом (не нуленном) dle 11.3 без модулей и хаков, не открывается полная новость, в php не силён, поэтому не могу сказать по какой причине. Версия php 7.1.6.
        1. Stanislavskiy11
          Может что-то не правильно делаете?
          Сам на 11.3 версии не проверял но видел как этот хак там работает.
          1. Антон
            Да нет, делаю всё правильно как у вас в инструкции. Возможно хостинг, хотя с ним проблем тоже не было, но сразу как вернул оригинальный код обратно в show.full.php так сразу всё заработало, такие дела...
Гость, оставишь комментарий?
Имя:*
E-Mail:


Подписаться на комментарии
Актуальная версия DLE 11.3
Обновленияnew

Обновления к шаблону MyBlog #1. Легко и быстро.

Подробнее
Чем вам нравиться мой сайт?
Информация
Пошалим?

Добро пожаловать на FOR-DLE.ru!

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

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт