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

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

1. Заходим в админку сайта, идём в Материалы-Менеджер материалов-Создать. Создаём материал, назовём его  404, с тем содержимым, которое будет выводиться на странице ошибки error 404. Раздел не указываем.

error404

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

error404

Создаём файл error.php и внутри него прописываем такой код:


<?php
defined( '_JEXEC' ) or die( 'Restricted index access' );
if (($this->error->code) == '404')
{
header("HTTP/1.0 404 Not Found");
header('Location: ' . $this->baseurl . '/index.php?option=com_content&view=article&id=64');
exit;
}


index.php?option=com_content&view=article&id=64 - это URL который прописан в поле ссылка пункта меню, котрый создали ранее, а 64 - это id материала.

Если нужно, чтобы при неверном URL было перенаправление на главную страницу сайта, то вместо index.php?option=com_content&view=article&id=64 нужно оставить слэш:


<?php
defined( '_JEXEC' ) or die( 'Restricted index access' );
if (($this->error->code) == '404')
{
header("HTTP/1.0 404 Not Found");
header('Location: ' . $this->baseurl . '/');
exit;
}


Файл error.php нужно поместить в папку используемого вами шаблона /templates/ваш шаблон/, далее проверяем что получилось. Для этого вводим любой неверный адрес в адресной строке браузера и, если всё сделано правильно, то выведется созданная вами ошибка с оформлением которое сделали вы.

error404

2. С помощью файла .htaccess

Для этого нужно создать файл error.html (назвать можно по другому, как захотите). Этот файл будет страничкой на которую будет попадать посетитель в случае ошибки. Страничку оформляем по своему желанию. Можно вставить картинку, прописать текст разъясняющий причину ошибки, дальнейшие действия посетителя, ссылки на какие можно пройти для поиска информации.


Созданный файл error.html нужно разместить в корне сайта, там же находим другой файл .htaccess или htaccess.txt и открываем его.

Далее для указания ошибки прописываем строку ErrorDocument 404 /error.html.

Таким же образом можно указать ошибки 403 (пользователь не прошел аутентификацию), 500 (внутренняя ошибка сервера) и другие ошибки.


Можно не создавать файл, а просто перенаправить посетителя со страницы с ошибкой error 404 на главную страницу вашего сайта ErrorDocument 404 http://www.vachsait.ru. На этом всё, лично я пользуюсь первым способом, а какой окажется проще для вас решать вам.

Если появились вопросы или вам понравилась статья оставьте комментарий. При копировании текста указывайте автора и ссылку на статью. Удачи!