1 1 1 1 1 1 1 1 1 1 Рейтинг: 4.50 - 1 отзыв

Делаем страницу 404, как обычный материал, пишем все что хотим в ней.

Как сделать свою собственную страницу ошибки Error 404 в Joomla 3

Создаем меню "Фиктивное меню" выводить которое мы не будем.

Создаем пункт этого меню со ссылкой на материал, который создали (ошибка 404).

Пишем аллиас error-404. 

Создаем модуль вывода фиктивного меню. И отключаем его (но модуль оставляем).

Ищем файл вашсайт/templates/system/error.php

Стираем в нем все. И вписываем:

<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.1 301 Moved Permanently");
header('Location: ' . $this->baseurl . '/error-404');
exit;} ?>

и в вашсайт/templates/шаблон/html/com_content/article/default.php  в самый верх пишем 

<?php
$sv = $_SERVER['REQUEST_URI'];
if ($sv == '/error-404') {
header("HTTP/1.0 404 Not Found");
} ?>

Теперь у вас есть своя страница 404 в Joomla 3 (так же и в Joomla 2)

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

<meta http-equiv="refresh" content="5; URL='/'" />

UPD

1. Не забываем писать СВОЙ САЙТ!

2. Файл можно разместить вашсайт/templates/system/error.php или вашсайт/templates/ВАШ ШАБЛОН/error.php. В первом случае этот файл будет работать со всеми шаблонами, а во втором, только с одним шаблоном.

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

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

Комментарии   
Vlad
0 # Vlad 16.05.2014 19:36
Отличный способ! Пользуюсь на Ура.!

Если не трудно подскажите как сделать для мультиязычного сайта. Joomla 3.x

Сделал два материала для каждого языка, два меню для каждого языка, но открывается только страница для языка сайта по умолчанию. :sad:
Ответить
Дмитрий
0 # Дмитрий 26.05.2014 00:49
достаточно сохранить один и тот же алиас в пунктах меню 404, естественно под разные языки и естественно связав их между собой.
Ответить
Алексей
0 # Алексей 05.07.2016 13:19
Все отлично работает, всем советую этот метод
Ответить
Markys
0 # Markys 04.08.2014 16:37
Фигня это (во всяком случае для joomla 3.3)
Ответить
Игорь
0 # Игорь 19.08.2014 08:50
Все работает и на Joomla 3.3 отлично.
Ответить
VF
0 # VF 20.04.2015 02:35
Работает только ссылку rtr.ru/error-404' поменял на свой сайт
Ответить
Семен
0 # Семен 20.04.2015 04:54
Не отдает в заголовке 404 ошибку при таком раскладе.
Ответить
Игорь
0 # Игорь 21.04.2015 14:02
В коде вместо rtr24.ru, нужно писать свой сайт, тогда все работает.
Ответить
Alex
0 # Alex 04.11.2015 20:36
Дело в том, что менять надо файл error.php по другому адресу: /templates/Ваш шаблон/error.php.

Тогда на сайте всё заработает.
Ответить
stimyl
0 # stimyl 24.08.2016 12:04
Здравствуйте!
Все работает, вот только у меня на сайте установлен плагин анонсов материалов BT Content Slider, в котором созданная статья отображается(((
Ответить