Я нашёл очень хорошее решение «Как направить Ошибка 404 на главную страницу сайта в Joomla!». Может кто та уже знает но многие новички не знают.
Если документ не найден то на сайте Joomla! выскакивает ошибка 404, точнее стандартную страницу.
Как его заменить? Если Вы пользуетесь различными программами автоматического создания ЧПУ, то они сами формируют страницу ошибки 404. Вам ее только надо отредактировать.
А вот если Вы такими программами не пользуетесь, то Вам страницу 404 надо создать.
Первый этап. Нужно создать файл с именем error.php в /templates/Ваш_Шаблон/
Код error.php следующий:
Если у Вас выключен в настройках mod_rewrite
<?php
defined( '_JEXEC' ) or die( 'Restricted index access' );
if (($this->error->code) == '404')
{
header("HTTP/1.0 404 Not Found");
header('Location: ' . $this->baseurl . '/index.php/error.html');
exit;
}
?>
Если у Вас включен в настройках mod_rewrite
<?php
defined( '_JEXEC' ) or die( 'Restricted index access' );
if (($this->error->code) == '404')
{
header("HTTP/1.0 404 Not Found");
header('Location: ' . $this->baseurl . '/error.html');
exit;
}
?>
Второй этап. Создаете документ с любым именем. Назовите его, например, «Страница отсутствует». Вне раздела и категории. Заполните документ текстом. Мол страницы такой на сайте нет и т.д. Можно поставить картинку, да хоть звуковой файл.
Третий этап. Создаете меню Error-menu. Модуль для него создавать не будем. Отображаться оно не будет. В этом меню создаем один пункт. Его тип - «стандартный шаблон материала» и выбираем страницу, созданную на втором этапе, т.е. «Страница отсутствует»
Как называть пункт меню не имеет значение. Например, ошибка. Главное правильно заполните псевдоним меню «error».
Все сделано.
Но я пользуюсь другим методом. Никакие пункты меню и страницы я не создаю. Все ошибки я перенаправлю на главную страницу. Как правило, как бы Вы не оформили страницу «Страница отсутствует», все равно пользователь покидает Ваш сайт, если он заходит на подобную страницу. Очутись он на главной, шансов что он покинет сайт меньше. Итак, при таком подходе, Вам надо просто создать файл с именем error.php в /templates/Ваш_Шаблон/ с кодом:
<?php
defined( '_JEXEC' ) or die( 'Restricted index access' );
if (($this->error->code) == '404')
{
header("HTTP/1.0 404 Not Found");
header('Location: ' . $this->baseurl . '/');
exit;
}
?>И без никаких ЗЕРКАЛ
Подробнее:
http://www.joomlabegin.ru/oshibki-joomla/joomla-404.html