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

Создание собственной 404 ошибки в Joomla
Создание собственной 404 ошибки в Joomla

Приступим...

Для начала создаем материал в общей категории, т.е. он должен находиться не в определенной категории сайта, а внутри каталога статей. Называем ее 404-error и пишем любой текст, который вы считаете необходимым, когда пользователь заходит на данную страницу.

К примеру, можно поставить ссылку на главную страницу сайта, чтобы пользователь всегда мог вернуться туда и найти нужный ему материал.

Затем копируем путь, который ведет к нашей статье, выглядеть он должен примерно так:

https://ваш_сайт/index.php?option=com_content&view=category&layout=blog&id=104&Itemid=75

Можно занести его в блокнот, чтобы потом быстро скопировать при необходимости. Ставим состояние отображения на "published".

Берем файл error.php, который лежит в папке system (templates/system) и копируем его в папку с вашим шаблоном, например, в папку templates/ваш_шаблон/

Заменяем в файле error.php строки, добавив нижеприведенный код сразу после линии "restricted access" :

if (($this->error->code) == '404') { header('Location: /index.php?option=com_content&view=article&id=75'); exit; ]

Если вы используете Joomla версии 1.6, 1.7, 2.5, то пользуйтесь следующим кодом:

if (($this->error->getCode()) == '404') {

Используйте ранее скопированный путь с материалом для указания адреса в коде (Location). ID материала можно узнать при создании статьи... У меня весь код выглядит следующим образом:

<?php 
/** 
 * @package Joomla.Site 
 * @copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved. 
 * @license GNU General Public License version 2 or later; see LICENSE.txt 
 */ 
defined('_JEXEC') or die; 
if (($this->error->getCode()) == '404') { 
    header('Location: /index.php?option=com_content&view=article&id=211'); 
    exit; 
] 
//sing language and direction 
$doc = JFactory::getDocument(); 
$this->language = $doc->language; 
$this->direction = $doc->direction; 
?>

Последний штрих - добавляем в файл robots.txt строку для того, чтобы поисковые системы не нашли нашу 404 ошибку:

Disallow: /index.php?option=com_content&view=article&id=75

Не забудьте заменить ID материала при копировании кода.

Оцените статью