ГлавнаяВебмастерамИнструкцииДружелюбная страница 404

Инструкции

Strannik
23 Сентябрь 2010 3551

errorrrrr

Пришло время написать страничку "ошибки 404".

Стандартная страница в Joomla!, конечно, есть, но выглядит она скучно и убого, и ничего кроме зевоты не вызывает. А психологический эффект от попадания на неё, как говорят, сравним с падением в тёмный погреб. Но хочется-то интересненького - не только нам, но и клиенту. Точнее, не столько клиенту, сколько нам! Это гораздо важнее.

Поскольку фантазия буйствует, а сравнить с чем-то не вредно, идем по просторам Интернета и осматриваемся по сторонам...

Вот пример страницы 404 от нашего вечно любимого hoster.kg

Ошибка 404 у hoster.kg

Или вот - стандартная ( уж не знаю, кто стандартизировал...)

Ошибка 404 - стандарт

Скукотища...

На сайте webmascon.com есть прекрасная статья, поясняющая значение хорошей и корректной страницы 404. Смысл её создания заключён в том, чтобы избавить посетителя от негативных эмоций, создать более дружественную обстановку на сайте даже в случае  "промаха" и исключить преждевременный уход посетителя с сайта. Однако, написанная довольно доходчиво, статья не даёт внятного представления о технологии  создания страницы.  А вот на joomlaforum.ru нашлись относительно подробные объяснения здесь и здесь.

По горячим следам написал собственное простое и краткое "...водство".

Итак, создаём дружелюбную страницу ошибки 404.

1. Создаём материал "Ошибка 404", не указывая раздел и категорию.Запоминаем id материала (справа в таблице материалов).

2. Создаём в любом меню пункт с привязкой к данному материалу. Пункт меню не публикуем. Впрочем, если есть нужда и желание, можно создать отдельное меню, например, Технический раздел - категория Ошибки и опубликовать его там.

3. Находим файл error.php в директории наш сайт/templates/system/, на всякий пожарный случай создаём его копию, переименовываем её, например _error.php и оставляем в покое. Исходный файл error.php открываем в редакторе (лично я использую pspad) и производим следующие действия:

- Удаляем начисто всё, что находится ниже DOCTYPE, оставляя в файле буквально следующее

/**
* @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">

- Заменяем фрагмент

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>

на такой

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
if ($this->error->code = '404') {
header("HTTP/1.0 404 Not Found");
} ?>

- Ниже строки

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

пишем

 <?php
defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=180');
?>

Заменяем число ( в данном случае 180 ) на id реального материала (смотри п.1). Фактически мы создали редирект со штатной страницы 404 на нашу.

Теперь оформляем нашу страницу - например, так, как здесь. Получилось примерно вот что -

Наша страница 404

Не правда ли, гораздо интереснее, чем в предыдущих примерах?

Вот и всё! Дерзайте. Будьте здоровы и веселы!

PS. Небольшое дополнение по итогам смены версии 1.5.20 на 1.5.21 и далее

При заливке очередной версии Joomla! 1.5 файл error.php, естественно, заменяется тоже. Поэтому Ваша "прекрасная", столь любовно нарисованная  "страничка 404" заменится унылым стандартом.

Не волнуйтесь, она никуда не делась. Делся редирект. Собственно материал "Страница 404" в целости и сохранности, просто он стал недоступен. Одно из двух - либо вновь тратим 1 минуту на все описанные выше операции с файлом error.php, либо заменяем его из сохранённого резерва. И будет вам счастье!

Комментарии   

 
# Омурбек 05.10.2013 05:33
Прикольно! Первый раз такое встретил. Аршавин понравился!
Ответить | Ответить с цитатой | Цитировать
 
 
# samson 05.10.2013 05:35
От души! Только я не понял, эт как статья в Жумле, или чо или сервак так отвечает.
Ответить | Ответить с цитатой | Цитировать
 

Блог компании

Защитите Ваш компьютер!

Новости студии