Ошибка 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. Что и требовалось получить.
Код содержимого error.php пустой что-ли?
Спасибо, что сообщили об ошибке. Содержимое кода отредактировал.
Не тратьте время, изложенное тут не работает
сперва - «например error-404»
потом - «index.php/404-error»
Все остальное так же на туалетной бумаге писалось - работает НИКАК ))))))))
Свой файл в шаблоне работает корректно, но он так же не информативен, а Ваше творение - на пустую страницу больше похоже
За найденную ошибку в статье спасибо: 404-error и error-404. Исправил!
По поводу остального так и непонятно в чем у вас проблема?
У меня этот код работает и сейчас на Joomla 3.9.16
Не вводите людей в заблуждение, если сами не можете разобраться в своих ошибках.