Правильная настройка ошибки 404 в Joomla

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

Создаем новый материал для показа 404 ошибки.

Если не усердствовать над оформлением страницы, то можно сделать простенький текстовый контент с кнопкой для возврата на предыдущую страницу.

Код этой страницы такой:

<div style="text-align:center;">
<h1 class="error-title">404</h1>
<h2>Ой... Мы не можем найти эту страницу!</h2>
<p class="lead">Мы сожалеем, но страница на которую Вы пытались перейти не существует.<br />Пожалуйста вернитесь на предыдущую страницу или воспользуйтесь меню сайта.</p>
<a href="javascript: history.go(-1)" ><button>Предыдущая страница</button></a>
</div>

Прикрепляем материал к пункту меню joomla, чтобы ссылка страницы с ошибкой имела человекопонятный url, например 404-error.

Не забываем ссылку меню сделать скрытой

Создаем файл error.php в папке шаблона сайта /templates/ваш_шаблон, который будет возврашать код ошибки и показывать нашу кастомную страницу.

Код содержимого error.php

<?php
defined('_JEXEC') or die;

if (!isset($this->error))
{
	$this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
	$this->debug = false;
}

if($this->error->getCode()=='404') {
	header("HTTP/1.0 404 Not Found");
        $url=JURI::root()."index.php/404-error";
        $data = file_get_contents($url) or die("Cannot open URL");
        echo $data;
        break;
}
?> 

Проверяем открывается ли страница с ошибкой. Вводим несуществующий url, примерно так http://soft-setup.ru/iuensg

Если открылась наша кастомная страница по адресу /404-error, то все сделано правильно.

Проверяем возращает ли наш сайт 404 ошибку роботу.

Проверить ответ сервера можно в webmaster.yandex.ru. переходим в Инструменты/Проверка ответа сервера. Вводим несуществующий url и жмем проверить.

Получили код статуса HTTP: 404 Not Found. Что и требовалось получить.

4 thoughts on “Правильная настройка ошибки 404 в Joomla

    1. admin Автор записи

      Спасибо, что сообщили об ошибке. Содержимое кода отредактировал.

  1. Пахнова

    Не тратьте время, изложенное тут не работает
    сперва - «например error-404»
    потом - «index.php/404-error»
    Все остальное так же на туалетной бумаге писалось - работает НИКАК ))))))))
    Свой файл в шаблоне работает корректно, но он так же не информативен, а Ваше творение - на пустую страницу больше похоже

    1. admin Автор записи

      За найденную ошибку в статье спасибо: 404-error и error-404. Исправил!
      По поводу остального так и непонятно в чем у вас проблема?
      У меня этот код работает и сейчас на Joomla 3.9.16
      Не вводите людей в заблуждение, если сами не можете разобраться в своих ошибках.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *