Узнайте, как правильно создать и настроить собственную страницу ошибки 404 для сайта на Joomla 3 и Joomla 4, отображаемую в интерфейсе шаблона.

Что такое ошибка 404?

Важно знать!
Ошибка 404 (Error 404) — это ответ сервера, отправляемый при запросах на несуществующие ресурсы.

Веб-сервер должен отправлять ответ 404 Not Found в случае, если соответствующего запрашиваемому URL-адресу ресурса не существует.

Что такое страница ошибки 404?

Важно знать!
Страница ошибки 404 — это веб-страница, отображаемая при прямом запросе на несуществующий документ.

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

Страница ошибки 404 в шаблонах Joomla

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

Как правило, внешний интерфейс данных страниц сильно отличается от общего интерфейса шаблона, что может негативно сказаться на поведенческих факторах: некоторые пользователи могут «испугаться» и покинуть сайт. Во избежание таких потерь посетителей сайта на ровном месте мы рекомендуем создавать настраиваемую страницу для 404-ошибки, отображаемую в интерфейсе шаблона Joomla.

Создание страницы 404 в интерфейсе шаблона

Разберем по пунктам, как правильно создать и настроить собственную страницу ошибки 404 в теле стандартного шаблона Protostar для Joomla 3 с отображением контента в области компонента.

Важно знать!
Указанная инструкция актуальна для Joomla 3, 4 и 5.
  1. Создать и опубликовать материал, который будет отображаться при запросе несуществующей страницы. Примеры опций:
    • Заголовок: «Страница не найдена».
    • Алиас: «error-404».
    • Cодержание: «Указанной страницы не существует. Вероятно, она была удалена или перенесена на другой адрес.»
    • Категория: «Uncategorised».
  2. Создать и опубликовать скрытый пункт меню данного материала с алиасом error-404:
    • Во вкладке Параметры материала необходимо отключить показ всей лишней информации (Автор, Хиты, Дата публикации и т. д.).
    • Во вкладке Параметры ссылки необходимо установить опцию Показать в меню на Нет, чтобы скрыть пункт меню.
    • Во вкладке Параметры страницы можно прописать тег <title>, который будет отображаться вместо названия материала. Например: «Ошибка 404 - страница не найдена».
    • Во вкладке Метаданные выбрать значение метатега Robots noindex, nofollow.
  3. В папке шаблона (/templates/шаблон) создать или заменить существующий файл error.php, который должен содержать только следующий код:
    <?php
    defined( '_JEXEC' ) or die( 'Restricted access' );
    if($this->error->getCode() == '404'){
        header("HTTP/1.1 404 Not Found");
        echo file_get_contents(JURI::root().'error-404');
        exit;
    }
  4. Проверяем функционирование страницы. По запросу несуществующего документа должен отображаться созданный материал.
  5. Проверяем ответ сервера для несуществующей страницы. Для этого можно воспользоваться панелью разработчика в браузере или сторонним веб-сервисом.
  6. Чтобы сделать страницу ошибки 404 более наглядной, рекомендуем добавить в её контент соответствующее изображение, которое без труда можно найти в поисковой выдаче картинок, а также отключить на ней ненужные модули.

Плагин Custom 404 Error Page

Описанный выше способ является рабочим, однако у него есть один значительный недостаток: при обновлении шаблона Joomla код файла error.php также обновится до состояния по умолчанию, поэтому придётся снова вручную менять его код. С одной стороны в этом нет ничего сложного, с другой стороны вы можете просто забыть это сделать, и вместо пользовательской страницы 404 будет отображаться страница ошибки шаблона JoomlaПлагин Custom 404 Error Page позволяет сделать так, чтобы пользовательская страница ошибки не изменялась при обновлениях шаблона. Для этого необходимо: