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

Именно этот файл отвечает за настройку и работу 404 ошибки. Можно прописывать редирект на index.php, тем кто не очень любит кастомные страницы. Нет документа - на главную. Но тем кто хочет сделать свою страницу 404 ошибки на joomla 2.5 необходимо создать такого вида файл error.php в папке шаблона:
<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
echo "<h1>404 ERROR</h1>";
//header('Location: error-404.html');
echo file_get_contents(JURI::root().'/error-404');
exit;
}
if ($this->_error->get('code') == '500') {
header("HTTP/1.0 404 Not Found");
//header('Location: error-404.html');
echo file_get_contents(JURI::root().'/error-404');
exit;
}
?>
Это дает пользу в том, что яндекс и другие поисковики смогут получить заголовок-хидер, который ясно даст им понять, что страницы действительно не существует. Этот вариант предпочтительней, если хотите угодить поисковикам. А кто сейчас не хочет этого? :)
update 17 августа 2016: для того чтобы установить ошибку 404 в джумле правильно, с ответом сервера 404 роботу нужно сделать это точно как в файле. Если хотите чтобы файл 404 ошибки был в дизайне сайта, тогда нужно создать материал, вставить его в скрытое меню и взять ссылку оттуда. В моем случае это будет error-404.

Но это позволит вам настроить только редирект при детекте 404 ошибкой самой джумлой. Также можно настроить 404 ошибку с помощью директивы в htaccess.
ErrorDocument 404 /вашпутькфайлу404ошибки.php

Если у вас есть другой способ установки кастомной ошибки 404 в джумле или вы разбираетесь в директивах htaccess, прошу комментить.
Комментарии
RSS лента комментариев этой записи