Ошибка 404 в joomla

Итак, сегодня поговорим об ошибках, а именно о странице сообщающей пользователю о том, что страница не найдена, так называемая ошибка 404.

 

Здесь сразу стоит определиться со значением этой страницы для пользователя и для поисковых систем. Дело в том что каждая страница помимо того что отбражает Ваш браузер несет информацию еще и в заголовках. В частности сейчас мы говорим об "ответе сервера". Корректное значение для данного параметра как раз будет HTTP 404 - т.е. поисковик понял что страница не найдена. Очень не рекомендуется применять так называемый "Soft 404" - вариант когда в ответе подменяется код ошибки 404 на 200(нормальный ответ) а в тексте страницы выводится сообщение об ошибке. Дело в том что все страницы с ошибочным адресом будут проиндексированы поисковыми роботами. Соответственно снижается скорость индексирования полезного контента. Вывод здесь простой - поисковый робот должен получить ответ 404 для того чтобы исключить страницу из индекса.

Теперь поговорим о людях. Людям не виден "код ответа сервера" соответсвенно помимо ошибки 404 нужно уведомить пользователя о том что произошла ошибка и попытаться вернуть его на существующие страницы. По умолчанию joomla (речь о версии 1,5) делает это не очень красиво, выдавая сообщение следующего содержания:

Ошибка 404 в joomla

рис. Ошибка 404 в joomla

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

Итак, мы решили что страница эта нас не устраивает, будем ее переделывать, вопрос решен. Для начала определимся с текстом - здесь можно дать волю фантазии, стандартно нарисовать знак "кирпич", пошутить как это делает яндекс, или придумать что-то еще. Все ограничено только вашей фантазией. В общем - дерзайте. Итак, текст для страницы 404 ошибки в joomla написан, начинаем битву за посетителя. Идем в менеджер материалов, создаем новый в настройках , из выпадающих списков «Раздел» и «Категория» выбираем «Не указанно». Запоминаем/записываем "ID Материала", материал сохраняем.

Дальше идем в templates/system, находим там файл error.php, открываем его на редактирование. Удаляем там все что написано начиная c

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Обычно это строка 15 и далее. Вместо удаленного фрагмента пишем

<?php defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'index.php?option=com_content&view=article&id="ID Материала"');
 ?>

Вместо выделенного красным нужно поставить ID вашего материала для страницы с ошибкой 404 в joomla. Ну собственно все - можно проверять. Забиваем в адрес что-то заведомо не правильное - видим результат в виде нашего материала. При этот поисковые системы получают 404 ошибку а посетители созданное нами сообщение в рамках общего дизайна сайта. На этом топик об ошибке 404 в joomla можно закрывать, если есть вопросы - пишите, комментируйте - критика приветствуется Улыбаюсь