Страница ошибки 404 в Joomla 1.5,2.5,3.0 - в стиле сайта
Наверняка кто-то уже сталкивался с ситуацией когда при серфинге сайта на Joomla возникала ошибка 404 - документ не найден. Так вот ошибка 404 показывается посетителю тогда если та страница, которую он запросил, не существует или была удалена с сайта.
По умолчанию в Joomla существует страница ошибки 404, но она имеет следующий вид:
Отдельная страница, никак с сайтом не связана, дизайн никакой. Это не очень хорошо потому, что пользователи вашего сайта могут сразу покинуть его, что и бывает в 99% случаев.
Необходимо оформить данную страницу в виде стандартной страницы Joomla, которая будет выглядеть и содержать все элементы, как и на самом сайте.
Для этого зайдите в административную панель Joomla, создайте стандартный (без использования K2) новый материал и дайте ему название, например «Ошибка 404 - страничка не найдена». Оформите ее соответственно, чтобы пользователь мог с этой страницы перейти на главную страницу или в другой удобный вам раздел. Можно сделать ссылку на страницу с формой обратной связи с администратором.
Далее для Joomla 2.5 и 3.0 в настройках материала из выпадающего списка "Категория" выберите "Uncategorised". (если такой опции нет, то создайте категорию с названием "Uncategorised").
Для Joomla 1.5 в настройках материала, из выпадающих списков «Раздел» и «Категория» выберите «Не указанно».
После этого сохраните материал и запомните его id (ID -это уникальный номер статьи или материала в практически любой CMS) - его можете найти на странице со списком материалов.
Продолжаем:
Создание страницы ошибки 404 в Joomla 2.5 и 3.0.
Для начала перейдите в папку: "имя сайта"/ templates/system/, скопируйте имеющийся там файл error.php в папку: ваш сайт/ templates/"название вашей темы".
Этот файл мы будем редактировать и чтобы при последующем обновлении системы все наши изменения не пропали, мы скопировали его в папку с нашей темой.
Откройте данный файл при помощи какого либо редактора кода. Найдите в нем следующую строку:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
В этом файле удалите все ниже данной строки и вставьте вместо его следующий код:
<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: index.php?option=com_content&view=article&id=уникальный номер материала');
exit;} ?>
После этого фразу - "уникальный номер материала" - замените на id того материала, который мы создавали для использования в качестве страницы 404. Сохраните файл, разместите на сервере. Готово. Но может возникнуть проблема с тем, что страница ошибки будет содержать еще лишние модули сайта. Для этого можно создать короткий адрес для вашей страницы 404.
Для этого создайте скрытое меню т. е. меню которое вы не будете выводить на сайте при помощи модуля.
создание модуля -
создание меню -
В данном меню создайте пункт меню ведущий на материал используемый в качестве ошибки 404:
- в поле "Тип пункта меню" выберите "Материал";
- в поле "Выберите материал" укажите материал используемый для страницы 404;
- в поле "Заголовок меню" можете указать что ни будь типа: "Ошибка 404 страница не найдена";
- в поле "Алиас" error-404.
И нажмите "Сохранить".
Теперь после переадресации на страницу 404 ее адрес будет вида: http://имя сайта.ru/error-404.html или http://имя сайта.ru/error-404. Теперь добавьте данную страницу в файл robots.txt, чтобы она не индексировалась поисковыми системами. Для этого в robot.txt добавьте следующее:
Disallow: /error-404.html
Disallow: /error-404
Можете попробовать ввести адрес любой несуществующей страницы и проверить результат.
Создание страницы ошибки 404 в Joomla 1.5.
Пройдите в папку: "имя сайта"/ templates/system/ и откройте, при помощи какого либо HTML редактора файл: error.php.
Найдите в этом файле строку:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Удалите все что находится в этом файле ниже данной строки и вставьте следующее:
<?php defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'index.php?option=com_content&view=article&id=43');?>
Только вместо значения «43» укажите идентификатор того материала который вы создали выше, для отображения в качестве страницы ошибки 404.
После этого сохраните данный файл и можете попробовать ввести адрес любой несуществующей страницы и проверить результат.
Комментарии
здесь: http://dtp777.ru
Помогло!!!