Ваш IP-адрес: 54.167.15.6

Tel/Viber/WhatsApp: +7-963-074-53-96

E-mail: info@alexfine.ru

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

Ошибка 404 видна посетителю в случае если он перешел на не существующую страницу или на удаленную.

На примере моего сайта, главная страница - http://alexfine.ru/

Если добавить в адресную строку набор символов - http://alexfine.ru/simvol123

 

404 OOPS Станица не найдена

 

Система перенаправит на страницу ошибки 404. Не настроенная (по умолчанию) страница ошибки 404, выглядит так: 

404 Материал не найден

Согласитесь, такая страница имеет не презентабельный вид и может отпугнуть пользователя. Страница оформлена в виде отдельной страницы сайта. Такая реализация плоха тем, что она открывается вне содержимого сайта. Как показывает практика, посетитель уйдет с такого сайта, не задумываясь закроет вкладку. Другое дело, если страница ошибки 404 откроется как страница (статья/материал) самого сайта, в одном стиле с сайтом и навигацией. 

Теперь перейдем непосредственно к созданию страницы ошибки 404. 

Стандартными методами, создается новый материал. Примерно так, как на картинке ниже: 

 

Создаем страницу ошибки Joomla

В материале выбираем категорию - "Uncategorised" или "Без категории". Создается статичный материал, который не принадлежит ни одной из категорий сайта. Как все поля заполнены, сохраняем данный материал и запоминаем его идентификатор (id). Его можно найти на странице со всем материалами - "id материала". 

Теперь когда мы создали материал и запомнили его идентификатор, можем перейти к самому сложному :). 

Необходимо скопировать файл error.php, который находиться по адресу:

alexfine.ru (на этом месте ваш сайт)/templates/system, в папку вашего шаблона (темы). 

Открываем только что скопированный файл и вставляем туда следующий код:  

<?php

defined('_JEXEC') or die;

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

// Get language and direction
$doc             = JFactory::getDocument();
$app             = JFactory::getApplication();
$this->language  = $doc->language;
$this->direction = $doc->direction;

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

?> 

Далее в строчке: $url=JURI::root()."index.php?option=com_content&view=article&id=ХХ", заместо XX пишем id материала который мы создавали.

Сохраняем файл и проверяем его работу. Если сделали все правильно, откроется наш материал. 

Не правильно указан адрес страницы

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

 

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

Защитный код
Обновить

ob avtore

Всем привет! Меня зовут Александр. Я родился в 1993 году и проживаю на данный момент в городе Челябинске, в самом суровом городе России. Челябинские жители настолько суровые, что на будильник заводят метеорит (падение метеорита в 2013 году) и заказывают землетрясение (в 2018 году). В последние несколько лет, все больше и больше хочется переехать, куда-нибудь в южные города России. Уже более трех лет занимаюсь созданием и продвижением сайтов. Введу свой блог, делюсь своим опытом и помогаю людям.

Копирование материалов сайта возможно только с указанием активной ссылки www.alexfine.ru в качестве источника.
Copyright © 2015-2018 All Rights Reserved. www.alexfine.ru

Изображение кнопки наверх