Страница "error 404" для Joomla. Урок 10

На этом уроке мы сделаем страницу «error 404» нашего сайта. Что это такое? Веб-мастера шутят, что страница 404 – самая посещаемая страница в Интернете.

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

Пользователь, при попытке перейти по «битой» ссылке на сайт, видит системную страницу «error 404» с фразой «404 Not foud» (не найдено). Выругавшись, он закрывает страницу и забывает о вашем сайте.

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

Для этого, в административной панели Joomla мы создаем статью, где пишем свои извинения по поводу произошедшей ошибки, что-то в этом роде: «Такой страницы нет, возможно, Вы неправильно набрали адрес страницы или перешли по неверной ссылке на наш сайт, или такой страницы никогда не было». Для прикола можете картинку веселенькую поставить.

Логичнее всего, после извинений, поставить ссылку со страницы «ERROR 404» на карту сайта. Если вы хорошо поработали над юзабилити: хорошо выстроена навигация по страницам, есть поиск, удобные меню и пр., то в любом случае, даже если пользователь попадет на страницу error 404, он сможет найти то, что ему надо. А это значит, что он не уйдет и останется на сайте.

В статье в закладках «Раздел» и «Категория» ставите «Не указано» и опубликовываете статью.

Чтобы эта статья с сообщением появилась в нужный момент и в нужном месте, необходимо покорежить файл error.php, который лежит в папке \templates\system вашего сайта. Но для начала, его надо скопировать в корневую папку шаблона.

Далее открываем файл error.php и косим все в этом файле, затем вставляем следующий код:

<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
header("HTTP/1.1 404 Not Found");
echo file_get_contents(JURI::root().'/index.php?option=com_content&amp;view=article&amp;id=');
?>

Где - это номер ID статьи, который вы увидите в последней колонке менеджера материалов.

ВНИМАНИЕ: После того, как файл error.php вы поместили в корневую папку шаблона, его необходимо прописать в инсталяционном файле templateDetails.xml. Между тегами <files> нужно вставить следующие строки: <filename> error.php</filename>

Посмотрите, как реализована страница «error 404» на моем сайте.

Следующий урок будет заключительным, мы сделаем последние штрихи и подведем итоги.

Скачать установочный пакет шаблона TRIP

 

Комментарии 

 
# banker7 06.01.2013 14:06
Добрый день, попробовал сделать 404 как у вас написано и ничего не получилось, движок joomla 3 прошу помощи (после всех манипуляций предложенных вами, сайт начал долго думать и не давать ответа)
Ответить | Ответить с цитатой | Цитировать
 
 
# banker7 06.01.2013 14:08
и вот еще, как в joomle 3 материал без категории сделать?
Ответить | Ответить с цитатой | Цитировать
 
 
# Anmast.ru 01.03.2015 11:59
Если у Вас зависает. и не получается всё как написано Выше. То вам просто нужно убрать знак дроби "/" который стоит перед index и всё будет работать норм. Удачи
Ответить | Ответить с цитатой | Цитировать
 
 
# Андрей 14.10.2013 18:51
Можно ли в приведенный код добавить "error 403" и как это можно реализовать?
Ответить | Ответить с цитатой | Цитировать
 
 
# Женька 09.11.2013 18:49
у меня тоже самое, все сделал как написано и как у banker7, тоже залипает и админка и сайт. Помогите, j3 тоже(
Ответить | Ответить с цитатой | Цитировать
 
 
# Ришат 24.06.2014 00:40
Шаг 1. Создайте статью "Ошибка 404"

Создайте статью, в которую включите, как я уже говорила, какой-нибудь текст, типа: "Извините, но мы все иногда ошибаемся...". Поместите картинку. Добавьте линки на карту сайта.
Убедитесь, что категория статьи - "не указано".

Шаг 2. Создайте линк на статью "Ошибка 404"

Создайте пункт меню, который ведет на статью "Ошибка 404" и нажмите на "Применить". В строке "Ссылка" появится запись с ID статьи, например: index.php?option=com_content&view=article&id=133. Скопируйте эту строчку в Блокнот (ниже я везде буду обозначать её этим же цветом).
В строке "Опубликовано" поставьте "Нет". Сохраните вновь созданный пункт меню, нажав на "Сохранить"
Ответить | Ответить с цитатой | Цитировать
 
 
# Ришат 24.06.2014 00:41
Шаг 3. Скопируйте файл error.php

Скопируйте файл error.php из директории templates/system в директорию вашего шаблона. Например, если я использую шаблон pobeda, я должна скопировать файл error.php в директорию templates/pobeda

Шаг 4:
Удаляете все и пишите следующик код при этом между одинарными кавычками поставьте свою ссылку
Ответить | Ответить с цитатой | Цитировать
 
 
# Ришат 24.06.2014 00:42
Удаляете все и пишите следующик код при этом между одинарными кавычками поставьте свою ссылку
Ответить | Ответить с цитатой | Цитировать
 
 
# Ришат 24.06.2014 00:44
В код который находится в статье пишите ссылку на пункт меню. Его нужно вставить между одинарными кавычками.
Ответить | Ответить с цитатой | Цитировать
 
 
# Алексей 15.02.2015 11:01
Спасибо, помогло для подпунктов меню, которые не должны быть активными при нажатии:
сделал error.php и просто записал:
---------------------------------

----------------------------------
Ответить | Ответить с цитатой | Цитировать
 
 
# Алексей 15.02.2015 11:02
Вот:
Ответить | Ответить с цитатой | Цитировать
 
 
# Алексей 15.02.2015 11:05
ЭЭЭЭ....админ, ты чо блин! .... печему у тебя нельзя сделать запись php кода в коментах?! ... нафиг ты вообще тогда сделал возможность добавлять коменты если народу посоветовать код нельзя? ...
Ответить | Ответить с цитатой | Цитировать
 
 
# Игорь 24.10.2015 11:24
Спасибо! Помогло без слеша перед index.
Пробовал аналогичный код у других , но отклик сервера был 200ok, а у Вас 404. - то , что нужно. Еще раз спасибо!
Ответить | Ответить с цитатой | Цитировать
 
 
# 555 09.12.2015 00:40
самая последния версия джумлы на данный момент
пишите в сапорт помогу зделать http://hdserver.ru
Ответить | Ответить с цитатой | Цитировать
 
 
# Серж 27.01.2016 19:14
Да - без слеша все работает! Ответ сервера 404 - все как надо! Удачи!
Ответить | Ответить с цитатой | Цитировать
 
 
# Толян 10.06.2016 20:12
Подскажите, а как сделать так чтобы сначала переадресовывал а на 404 страницу а затем был ответ сервера 404
Ответить | Ответить с цитатой | Цитировать