Ну вот такое решение существует.
- Делаем собственную страничку 404, текст и картинки - какие хотите.
- Делаем пункт меню, содержащий ссылку ссылкой на данную статью. Например 404.html. Запоминаем эту ссылку. Если используется SEF, то запоминаем SEF-ссылку. Модуль меню не публикуем.
- Из папки templates/system копируем файл error.php в папку templates/Имя_используемого_темплейта.
- В файле templates/Имя_используемого_темплейта/templateDetails.xml вписываем перечисление файла error.php. в разделе <files><filename>error.php</filename></files>.
- Заменяем содержимое файла error.php на -
<?php
/**
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
</head>
<body>
<?php
if (($this->error->code) == '404') {
header("HTTP/1.0 404 Not Found"); /*добавлено после учёта комментариев - отправляет код ошибки для поисковика*/
header('Location: 404.html'); /*открывает страницу ошибок для пользователя*/
exit;
}
?>
</body>
</html>
header('Location: 404.html'); - здесь вместо "404.html" вписываем адрес своей, вновь созданной страницы ошибок; тот, который запоминали (помните?).
Если сайт работает без SEF, строчка получится примерно вот такой -
header('Location: index.php?option=com_content&view=article&id=29 ');
- в этом варианте меню создавать не надо, но такой урл, согласитесь, не очень красив. Впрочем - решать вам.
Что такое 29 ? это ID материала (вписываем свой).