0 Пользователей и 1 Гость просматривают эту тему.
  • 166 Ответов
  • 80491 Просмотров
*

lolitma

  • Захожу иногда
  • 22
  • 1
Для Joomla 1.5 есть такое решение для создания собственной страницы 404:

    1. Создать материал, не указывая раздел и категорию.
    2. Создать ссылку через меню. После создание ссылки там же в ней посмотреть адрес статьи, например index.php?option=com_content&view=article&id=54
    3. В файле error.php, который находится в папке templates/system стереть всё содержимое и вместо этого написать:

        <?php
        defined('JPATH_BASE') or die();
        echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=54');
?>

А как это сделать на Joomla 1.7?
« Последнее редактирование: 29.08.2013, 10:15:27 от b2z »
*

alp

  • Захожу иногда
  • 11
  • 1
Если взять за основу способ для J1.5-http://joomlaforum.ru/index.php/topic,113927.0.html
 можно сделать так:

1. Создаем материал с текстом об ошибке.
2. Создаем меню с ссылкой на этот материал. Например 404.html. Запоминаем эту ссылку. Если используется SEF, то запоминаем SEF-ссылку. Модуль этого меню просто не публикуем, удалять не надо. Меню создается для красоты урла, чтобы не было всяких index.php?bla-bla-bla...
3. Из папки templates/system копируем файл error.php в папку templates/Название_Вашего_шаблона.
4. В файле templates/Название_Вашего_шаблона/templateDetails.xml вписываем перечисление файла error.php. в разделе <files><filename>error.php</filename></files>.
5. Заменяем содержимое нашего файла error.php на следующее:
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
</head>
<body>
<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: error404');
exit;
}
?>
</body>
</html>
header('Location: 404.html'); - здесь вместо "404.html" пишете адрес своей страницы ошибок, тот который запомнили из меню.
« Последнее редактирование: 24.10.2011, 11:43:57 от alp »
*

NightGuard

  • Практически профи
  • 3025
  • 371
  • вжжж-вжжж
А кто мешает сделать 404 на основе того же error.php? Копируете в свой шаблон и все отлично. И любой дизайн и что угодно.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма

skype: nightguardsrussia - только по рабочим вопросам, любые консультации - платные!
*

lolitma

  • Захожу иногда
  • 22
  • 1
Сделала как Вы посоветовали:

"Если взять за основу способ для J1.5-http://joomlaforum.ru/index.php/topic,113927.0.html
 можно сделать так:

1. Создаем материал с текстом об ошибке.
2. Создаем меню с..."

Всё получилось. Большое спасибо за помощь.
*

abbyevg

  • Осваиваюсь на форуме
  • 80
  • 6
  • эвилпанда
Предупреждаю, пойдет большая нагрузка на сервер.
*

ArSi

  • Новичок
  • 6
  • 0
Народ, подскажите как приладить переадресацию на главную при ошибке 404 на J1.7.
На J1.5 у меня 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 . '/');

exit;

}

?>

При этом все замечательно работало и при запросе к несуществующей странице, автоматом прекидывало на главную. В 1.7 это не работает, в чем дело? Что изменить в коде, чтоб наладить этот механизм под 1.7? Знатоки, оптимизируйте, пожалуйста, под 1.7.
*

AlexSF

  • Завсегдатай
  • 678
  • 68
  • В споре истина рождается
Если взять за основу способ для J1.5-http://joomlaforum.ru/index.php/topic,113927.0.html
 можно сделать так:

1. Создаем материал с текстом об ошибке.
2. Создаем меню с ссылкой на этот материал. Например 404.html. Запоминаем эту ссылку. Если используется SEF, то запоминаем SEF-ссылку. Модуль этого меню просто не публикуем, удалять не надо. Меню создается для красоты урла, чтобы не было всяких index.php?bla-bla-bla...
3. Из папки templates/system копируем файл error.php в папку templates/Название_Вашего_шаблона.
4. В файле templates/Название_Вашего_шаблона/templateDetails.xml вписываем перечисление файла error.php. в разделе <files><filename>error.php</filename></files>.
5. Заменяем содержимое нашего файла error.php на следующее:
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
</head>
<body>
<?php
if ($this->_error->get('code') == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: error404');
exit;
}
?>
</body>
</html>
header('Location: 404.html'); - здесь вместо "404.html" пишете адрес своей страницы ошибок, тот который запомнили из меню.

сделал по этому методу, но результатом не совсем доволен:
Спойлер
[свернуть]

А хотелось бы получить ответ HTTP/1.0 404 Not Found. как можно добиться правильного ответа сервера?
« Последнее редактирование: 09.11.2011, 16:32:22 от AlexSF »
Задаёте вопрос - не забудьте приложить ссылку на проблемный сайт
При проблеме с CSS рекомендую использовать Mozilla Firefox и её плагин FireBug
И по максимуму изучите, или поставьте в закладки - http://htmlbook.ru/css
Notepad++ поможет почти в любом деле
*

ArSi

  • Новичок
  • 6
  • 0
frisian спасибо большое :) По-моему, это самое оптимальное решение - попадать на главную, вместо состряпанной статьи 404. Конечно, если не участвуешь в конкурсе "Самая красивая страница 404".
*

mark1

  • Давно я тут
  • 393
  • 36
А хотелось бы получить ответ HTTP/1.0 404 Not Found. как можно добиться правильного ответа сервера?
А есть одна догадка... Там в рецепте сначала создается модуль, потом он СОХРАНЯЕТСЯ, но НЕ публикуется. Запоминаем ссылочку , и бла-бла бла. Так вот: имхо, Joomla и интерпретирует это 302/как moved temporarily.
А если сделать по совету NighGuard, я подозреваю, что будет желанный код 404 =)
*

kurandin

  • Осваиваюсь на форуме
  • 159
  • 5
$code = $this->error->getCode();
$app = & JFactory::getApplication();
if ( $code == 404 ) {
   $app->redirect($this->baseurl);
}

Поясните, куда это вставить?
*

fbr

  • Живу я здесь
  • 1283
  • 142
мне понравился вариант у NetCat - 404 перенаправлять на карту сайта

Я у себя сделал, как предлагалось здесь http://joomlaforum.ru/index.php/topic,113927.0.html
и вставил адрес карты сайта

*

abbyevg

  • Осваиваюсь на форуме
  • 80
  • 6
  • эвилпанда
Комрады, вы не думали о том, что 404 выдается не только если не найдена конкретная, рассматриваемая вами страница сайта, а если не найдена любая страница, любая мельчайшая картинка или документ, вобщем по любому недоступному пути. При продолжительном существовании сайта такого добра может набраться предостаточно, а поисковики будут приходить и периодически проверять наличие этого всего, тем более, не дай бог, если где-то осталась на это ссылка.

Резюмирую, страница с 404 ошибкой должна быть статической(!) либо ОЧЕНЬ простой и с минимальным набором графики.
*

tops974

  • Осваиваюсь на форуме
  • 73
  • 5
Также можно воспользоваться встроенным компонентом "Перенаправление" и направить станицу 404 на любую нужную вам страницу.
Посетитель доволен, А вот только не знаю, как в этом случае с нагрузкой.
*

newalex

  • Осваиваюсь на форуме
  • 67
  • 4
Использование "перенаправления" - создает дополнительную нагрузку на базу данных. Т.к. в этом случае он будет "собирать" обрашения от поисковиков и др. и акумулировать все это в базе данных. База при этом наполнится и раздуется. Поэтом использование error.php более правильно!
Строю портал.
*

tops974

  • Осваиваюсь на форуме
  • 73
  • 5
Создал пустой файлик error.php, внутри вставил
$code = $this->error->getCode();
$app = & JFactory::getApplication();
if ( $code == 404 ) {
   $app->redirect($this->baseurl);
}
закинул его в корень шаблона. Перехожу на страницу с 404 ошибкой и на белом фоне строка: $code = $this->error->getCode(); $app = & JFactory::getApplication(); if ( $code == 404 ) { $app->redirect($this->baseurl); }
Что я делаю не так? подскажите пожалуйста.
*

tops974

  • Осваиваюсь на форуме
  • 73
  • 5
Почистил кэш, стало работать, но как-то неправильно.
Допустим у меня была категория которой сейчас нет, то-есть ошибка 404. Выглядит это так, вставляю урл в браузер Хром  site.ru/film/melodrama/ и в ответ вижу это:   На этой странице обнаружена циклическая переадресация
Веб-страница  site.ru/film/melodrama/ привела к избыточному количеству переадресаций. Чтобы устранить эту проблему, можно удалить файлы cookie для этого сайта или разрешить файлы cookie независимых поставщиков. Если проблема сохранится, возможно, она связана с конфигурацией сервера, а не с вашим компьютером.
Также в мозилле   Неверное перенаправление на странице Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
Подскажите пожалуйста где у меня может быть ошибка?

*

newalex

  • Осваиваюсь на форуме
  • 67
  • 4
такая ошибка с "циклическим".. обычно (если все исправно) возникает если ссылка существует, а станицы или содержания нет.
Строю портал.
*

strannik-yura

  • Завсегдатай
  • 514
  • 43
  • :)
мне почему-то кажется, что перенаправленные идёт на не существующий страницу, из-за чего Joomla перекидывает на 404-ю а та в свою очередь на .....
PS могу ошибатся
*

newalex

  • Осваиваюсь на форуме
  • 67
  • 4
кстати  "перенаправления" надо отключить!
Строю портал.
*

Abiladenda

  • Осваиваюсь на форуме
  • 182
  • 5
Но все же как будет правильно, делать 404 страницу и запихивать через файл php шаблона, или отказаться от нее вообще, и сделать так что бы загружалась главная.
Я спрашиваю потому как в последней версии zoo 2.5.6, вообще убрали 404, тоесть если сайт только на zoo, без вмешательсва в код, при любом наборе неправильной ссылки перекидывает на главную, интересно почему команда yootheme сделала так, или это глюк в самом zoo, или на моем сайте.
*

biosila

  • Осваиваюсь на форуме
  • 84
  • 3
Весе ли верно  сделал?:
В файле templates\...\error.php заменил  код на тот что templates\...\index.php
Удалил лишнее( модуль комментариев ) и вставил текст.
Теперь при неверном адресе, у меня как и положено открывает страница в стиле шаблона сайта, с тем тестом что я добавил.
Просто боюсь, что я что то упустил, и у меня каждая такая страница будет считаться дублем.
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
Весе ли верно  сделал?:
В файле templates\...\error.php заменил  код на тот что templates\...\index.php
Правильное решение. Теперь получаете ответ сервера 404.
*

stasyansky

  • Давно я тут
  • 228
  • 22
подскажите, что не так...

перевел сервак с виндовс на убунту.
PHP 5.3.6
собственно на первом страница ошибки отображалась без проблем.
сейчас же просто отображается пустая страница.

в логах сервера обнаружил...

Цитировать
PHP Warning:  file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /***/templates/default/error.php on line 4
PHP Warning:  file_get_contents(http://***/error404.html): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /***/templates/default/error.php on line 4

в директории шаблона присутствует error.php с содержимым

Цитировать
<?php

defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'error404.html');

?>

« Последнее редактирование: 15.01.2012, 16:51:24 от stasyansky »
*

tops974

  • Осваиваюсь на форуме
  • 73
  • 5
Сделал все как прописано у alp
Цитировать
Если взять за основу способ для J1.5-http://joomlaforum.ru/index.php/topic,113927.0.html
 можно сделать так:

1. Создаем материал с текстом об ошибке.
2. Создаем меню с ссылкой на этот материал. Например......
Иду в Яндекс в "Страницы с ошибкой" и перехожу по ссылке. Открывается моя страница с ошибкой: site.ru/component/content/article/2-uncategorised/1054-error-404.html
Перехожу по другой ссылке, вот: /film/adventure/181-largo-winch-2  и попадаю также на страницу с ошибкой, но уже прилепленной к ней всеми модулями и т.д, а в адресной строке наблюдаю такой адрес: site.ru/film/adventure/component/content/article/2-uncategorised/1054-error-404.html
Компонент "Перенаправление" отключен, категорий с фильмами давно нет.
Подскажите пожалуйста в чем дело. Если для наглядности понадобиться, я дам реальные ссылки.
*

danik.html

  • Практически профи
  • 2659
  • 348
В error.php не обрабатываются вставки <jdoc:include /> - это все портит. Выходит нужно либо редиректить на существующую страницу нормальную, с текстом 404 - ошибка и тд. И при этом отдавать код 404 Not Found - это вообще реально сделать? пытаюсь установить во время редиректа свои заголовки - он устанавливает любые(301 например) кроме нужного 404 - как победить?
Хочется нормальной страницы 404 со всеми модулями и тд.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
Цитировать
не обрабатываются вставки <jdoc:include />
Генерируйте код и вставляете в файл error.php
*

avilin

  • Захожу иногда
  • 17
  • 0
Озаботился проблемой 404 после включения ЧПУ. Т.к. поисковики стали отправлять на старые адреса страниц, траф упал в 4 раза.

Сделал все по этой инструкции:
http://webmastermix.ru/lessons-joomla/134-stranitsa-oshibki-404-v-joomla.html

За исключением одного: после кода "<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">" вставил новый код удалив только следующую строчку файла error.php. В инструкции же написано, что удалять надо ВСЕ, что находится ниже данной строки.

В итоге получилась ошибка 404 на которой отображается главная страница сайта, а текст ошибки появляется в подвале:
http://www.ros-door.ru/blablabla

Меня это устраивает, а вопрос в том, какие минусы могут быть у такого метода?



*

noname-dev

  • Давно я тут
  • 285
  • 17
Народ, подскажите как приладить переадресацию на главную при ошибке 404 на J1.7.
На J1.5 у меня error.php содержит следующее:

При этом все замечательно работало и при запросе к несуществующей странице, автоматом прекидывало на главную. В 1.7 это не работает, в чем дело? Что изменить в коде, чтоб наладить этот механизм под 1.7? Знатоки, оптимизируйте, пожалуйста, под 1.7.
Знатоки никогда такого не делают, а именно редирект с 404 на главную, это очень и очень плохо.
*

NightGuard

  • Практически профи
  • 3025
  • 371
  • вжжж-вжжж
В error.php не обрабатываются вставки <jdoc:include /> - это все портит. Выходит нужно либо редиректить на существующую страницу нормальную, с текстом 404 - ошибка и тд. И при этом отдавать код 404 Not Found - это вообще реально сделать? пытаюсь установить во время редиректа свои заголовки - он устанавливает любые(301 например) кроме нужного 404 - как победить?
Хочется нормальной страницы 404 со всеми модулями и тд.
Да, <jdoc:include /> не обрабатывается, но модули вызывать можно.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма

skype: nightguardsrussia - только по рабочим вопросам, любые консультации - платные!
*

lubitel3

  • Захожу иногда
  • 23
  • 0
Воспользовался советом 3-го поста (NightGuard).
Всё просто отлично и не надо городить огород, ведь есть готовые решения, просто нужно подправить под себя и будет вам счастье...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Переадресация после регистрации Joomla 2.5

Автор Наталик

Ответов: 19
Просмотров: 14047
Последний ответ 23.09.2017, 09:39:44
от botva
Модуль устанавливается, но Joomla его не видит

Автор ruppert

Ответов: 19
Просмотров: 10347
Последний ответ 17.09.2017, 12:11:04
от sams
обновил Joomla 1.7 до 2.5

Автор foller10560

Ответов: 3
Просмотров: 69
Последний ответ 30.08.2017, 11:15:14
от SeBun
Joomla 2.5 и PHP 7

Автор Gerostrat

Ответов: 8
Просмотров: 103
Последний ответ 29.08.2017, 13:37:04
от wishlight
как включить на сервере дебаг? Joomla 2.5.6?

Автор 4slash

Ответов: 6
Просмотров: 235
Последний ответ 14.08.2017, 08:27:58
от 4slash