Ищу Вместо 404 Материал не найден - главная страница

Статус
В этой теме нельзя размещать новые ответы.

Scaltro

Гуру форума
Регистрация
15 Сен 2007
Сообщения
1.148
Реакции
79
В движке джумлы 2.5.7 когда пытаешься открыть несуществующую страницу выдаёт форму ошибки 404, как можно сделать чтобы вместо этой ошибки при несуществующей странице перекидывало на главную?
 
В .htaccess пропишите
ErrorDocument 404 /index.php
 
А по средствам пхп в движке никак не реализовать, а то по средствам апач не желательно.
 
Самый просто вариант, открыть файл error.php в папке шаблона или в папке шаблона system, и добавить между тегами head
Код:
<meta http-equiv="REFRESH" content="0;url=http://www.yourdomain.com/">
Но будет редиректить все ошибки.
Тогда можно прописать условие
Код:
<?php if ($this->error->getCode()==404) { ?>
<meta http-equiv="REFRESH" content="0;url=http://www.yourdomain.com/">
<?php } ?>
 
В джумле можно делать отдельный шаблон для 404 страницы. А там - перенаправление на главную сделать. Но это извращение... Как-то должно в самой джумле это делаться...
Лучше было бы конечно силами функционала самой джумлы конечно, но как?...

Самый просто вариант, открыть файл error.php в папке шаблона или в папке шаблона system, и добавить между тегами head
Код:
<meta http-equiv="REFRESH" content="0;url=http://www.yourdomain.com/">
Но будет редиректить все ошибки.
Тогда можно прописать условие
Код:
<?php if ($this->error->getCode()==404) { ?>
<meta http-equiv="REFRESH" content="0;url=http://www.yourdomain.com/">
<?php } ?>
А это не черевато последствиями, дублей никаких не получится?
 
А это не черевато последствиями, дублей никаких не получится?
Каких дублей?! ничего не будет, делайте через условие, и не найденные ссылки буду просто редиректиться на главную, как вы и хотели.
 
С помощью Sh404SEF 3.6.2.1465 можно организовать такое перенаправление. Плюс нередко встречал шаблоны со своими страницами 404
 
Почитайте лучше больше SEO инфы и передумайте делать редирект. В последнее время поисковики сделали акцент на 404. Продумайте лучше такую страницу 404 с которой бы пользователь обязательно перешел бы в какой-нить раздел.
А если уже решили делать по своему: смотрите, чтобы сервер выдавал именно ошибку 404 в ответ на запрос, иначе можно подцепить фильтр.
 
  • Заблокирован
  • #10
Самый просто вариант, открыть файл error.php в папке шаблона или в папке шаблона system, и добавить между тегами head
Код:
<meta http-equiv="REFRESH" content="0;url=http://www.yourdomain.com/">
Но будет редиректить все ошибки.
Тогда можно прописать условие
Код:
<?php if ($this->error->getCode()==404) { ?>
<meta http-equiv="REFRESH" content="0;url=http://www.yourdomain.com/">
<?php } ?>

PHP:
<?php if ($this->error->getCode()==404) {
    header('Location: '. JURI::root());//домен у сайта со временем может и поменяться
    exit; //Не забываем остановить дальнейшее выполнение скрипта
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху