Мануал 404 Not Found - Своя страница ошибки

Hirurg

Изучающий
Регистрация
29 Сен 2013
Сообщения
880
Лучшие ответы
0
Репутация
546
Страница 404 или 404 Not Found — это ответ веб-сервера о том, что запрошенный урл на сайте отсутствует. Посетителям сайтов довольно часто приходится наблюдать такую ошибку, особенно если он опечатался в адресе страницы, либо ссылка изначально была битой.

По умолчанию в Dle, в случаи ошибки выводится шаблонная страница "info.tpl", т.е подгружается основной шаблон main.tpl и info.tpl.
Реализация выгодная в плане задержки пользователя, юзер попав на такую страницу скорее всего сразу не закроет страницу,а вернётся на главную или кликнет на навигацию.
Но наверняка найдутся люди которые захотят видеть на своём сайте старомодную статическую html страничку.
Полазив по Сайтам на Dle тематики я не нашёл толковой реализации!
Много шаговые инструкции или не то что уже не работает на Dle 10.х ....

Важно что бы такая страница отдавала ответ серверу 404, а не 200 OK или 302 Found
В противном случае поисковые системы могут посчитать эти страницы за существующие и добавить в индекс много дублей одной странички.
Во общем вношу свой вклад в эту тему.

В файле "engine/modules/functions.php" ищем:
PHP:
function msgbox($title, $text) {
    global $tpl;
Заменяем на:
PHP:
function msgbox($title, $text) {
global $tpl, $lang;
if( in_array('HTTP/1.0 404 Not Found', headers_list()) || $text == $lang['news_err_27'] ) {
require_once ROOT_DIR.'/404.html';
die();
}else{
    $tplName = 'info.tpl';
}
Готово.
Не забудьте создать в корне страницу 404.html.
Источник:8dl
 
Сверху Снизу