" />

Вход / Регистрация

Статьи

Страница 404, которая работает

02 сентября 2018
Владимир Першин

С вами Владимир Першин, и в этой статье я хотел бы рассмотреть такой важный вопрос, как создание страницы 404 ошибки. Я достаточно часто сталкиваюсь с тем, что некоторые новички не только не знают, как сделать такую страницу такой, чтобы она "работала", но и просто не знают, как сделать свою, особенную, 404 страницу, вместо стандартной страницы ошибки Joomla…

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

Итак, давайте приступим. Думаю, что все видели, как выглядит 404 страница у стандартного шаблона Protostar:

Стандартная страница 404 ошибки

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

  • Когда у вас сайт на одном языке
  • Когда у вас мультиязычный сайт

Страница 404 ошибки для сайта на одном языке

Содержимое нашей страницы будет являться обычным материалом. Для этого мы переходим в менеджер материалов и создаём статью. Далее, для данной статьи мы создаём пункт меню, и привязываем к нему статью. Алиас рункта меню должен быть "404". Чуть позже вы поймёте, почему именно такой.

Когда содержимое страницы 404 у нас уже есть, мы копируем файл /templates/system/error.php в папку со своим шаблоном. Весь код мы полностью удаляем, и вставляем следующий:

<?php
defined('_JEXEC') or die;
if ($this->_error->getCode() == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: /404');
exit;}
?>

Как вы могли заметить, в 5 строке указана ссылка на 404 страницу и алиас должен совпадать с алиасом пункта меню, к которому была привязана страница 404!

Теперь, сохранив данный файл, ваша 404 страница будет кастомизирована и идеально вписываться в дизайн вашего сайта.

Страница 404 ошибки для мультиязычного сайта

При создании страницы для сайта, которй имеет несколько языков, процесс является аналогичным, но при этом мы создаём по одному материалу для каждого отдельного языка, и по одному пункту меню соответственно.

Далее, скопировав файл error.php и удалив из него всё содержимое, добавляем код, который будет отображать нашу 404 страницу, в зависимости от текущего языка.

<?php
defined('_JEXEC') or die;
$lang = JRequest::getVar('lang');
if ($lang == 'es-ES') {
echo file_get_contents(JURI::root().'/es/404');
} elseif ($lang == 'en-GB') {
echo file_get_contents(JURI::root().'en/404');
} else {
echo file_get_contents(JURI::root().'/404');
}
?>

Сохраняем и проверяем! Всё работает!

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

Отзывы

Комментарии (0)

2018-09-01 22:24:13
Владимир Першин
Украина, г. Николаев
+380937417200