Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Свой обработчик ошибочных url
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Свой обработчик ошибочных url
Не подскажет ли кто, что и где поправить, чтобы при запросе несуществующей темы/форума не показывалось сообщение "Запрошенной темы не существует", а вызывался свой php-скрипт-обработчик запрошенного url?
Добавлено спустя 8 минут 45 секунд:
P.S Или, как вариант - вызывать не скрипт, а просто 404 отдавать. Обработчик 404 в htaccess впишу...
Добавлено спустя 8 минут 45 секунд:
P.S Или, как вариант - вызывать не скрипт, а просто 404 отдавать. Обработчик 404 в htaccess впишу...
- MIT
- Former team member
- Сообщения: 2500
- Стаж: 15 лет
- Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
- Благодарил (а): 4 раза
- Поблагодарили: 352 раза
- Контактная информация:
Re: Свой обработчик ошибочных url
Ищи коди для тем и форумов в файлах viewtopic.php и viewforum.php соответсвенно.
Код: Выделить всё
trigger_error('NO_TOPIC');
Код: Выделить всё
trigger_error('NO_FORUM');
Re: Свой обработчик ошибочных url
Т.е заменяем указанный код на
или
и в файле error.php читаем эти параметры
И далее идёт процедура обработки или просто
Насколько это "прямо" или есть варианты лучше?
Код: Выделить всё
Header("Location: error.php?topic=" . $topic_id);
Код: Выделить всё
Header("Location: error.php?forum=" . $forum_id);
Код: Выделить всё
<?
$topic = $_GET['topic'];
$forum = $_GET['forum'];
Код: Выделить всё
<?
header("HTTP/1.0 404 Not Found");
echo "Page not found";
?>
- MIT
- Former team member
- Сообщения: 2500
- Стаж: 15 лет
- Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
- Благодарил (а): 4 раза
- Поблагодарили: 352 раза
- Контактная информация:
Re: Свой обработчик ошибочных url
Только после вызова Header ОБЯЗАТЕЛЬНО необходимо вызывать die() или exit.
Re: Свой обработчик ошибочных url
Всё работает, но в логах сервера вижу 2 редиректа подряд, один за другим - некрасиво и "несеошно"
Хотелось бы свети к одному, для чего ф-цию обработки думаю вставить в файлы форума...
В какой файл будет идеологически правильнее вставить эту ф-цию (в неё должен передаваться topic_id)? Как лучше с точки зрения производительности? В ф-ции присутствует довольно большой массив (несколько килобайт) с данными для редиректов.
Причина - контент некоторых топиков форума (успешно сидящих в индексе поисковиков и обросших беклинками) решено оформить в виде страниц сайта на том же домене (и поставить 301 соответственно), а на несуществующие - отдавать 404, чтобы поисковики наконец-то убрали их из баз и не долбили запросами
Хотелось бы свети к одному, для чего ф-цию обработки думаю вставить в файлы форума...
В какой файл будет идеологически правильнее вставить эту ф-цию (в неё должен передаваться topic_id)? Как лучше с точки зрения производительности? В ф-ции присутствует довольно большой массив (несколько килобайт) с данными для редиректов.
Причина - контент некоторых топиков форума (успешно сидящих в индексе поисковиков и обросших беклинками) решено оформить в виде страниц сайта на том же домене (и поставить 301 соответственно), а на несуществующие - отдавать 404, чтобы поисковики наконец-то убрали их из баз и не долбили запросами
- rxu
- phpBB Guru
- Сообщения: 16313
- Стаж: 17 лет 10 месяцев
- Откуда: Красноярск
- Благодарил (а): 533 раза
- Поблагодарили: 2119 раз
- Контактная информация:
Re: Свой обработчик ошибочных url
В текущей версии phpBB это и так делается.SvS писал(а):на несуществующие - отдавать 404, чтобы поисковики наконец-то убрали их из баз и не долбили запросами
Re: Свой обработчик ошибочных url
Ценная информация! спасибо
я на своем форуме вместо
написал
а в .htaccess прописал:
в самом файле 404.php
сверху указал
а дальше полноценный файл.
Получилось красиво.
посмотрите форум о волнистых попугаях
я на своем форуме вместо
Header("Location: error.php?topic=" . $topic_id);
написал
Header("Location: 404.php);
а в .htaccess прописал:
ErrorDocument 404 /404.php
в самом файле 404.php
сверху указал
Код: Выделить всё
<?php
header("HTTP/1.0 404 Not Found");
?>
Получилось красиво.
посмотрите форум о волнистых попугаях
Последний раз редактировалось FEAR93 03.07.2011 17:27, всего редактировалось 1 раз.
Причина: Не игнорируйте BBCode
Причина: Не игнорируйте BBCode
-
- phpBB 1.0.0
- Сообщения: 6
- Стаж: 12 лет 8 месяцев
- Контактная информация:
Re: Свой обработчик ошибочных url
А я просто заменил в
viewtopic.php
на
в viewforum.php
на
Сделал у себя на сайте http://pcfixinfo.ru/
посмотреть можно с помощью например этого сервиса http://mainspy.ru/otvet_servera
viewtopic.php
Код: Выделить всё
{
trigger_error('NO_TOPIC');
}
Код: Выделить всё
{
trigger_error('NO_TOPIC');
header("HTTP/1.0 404 Not Found");
}
Код: Выделить всё
{
trigger_error('NO_FORUM');
}
Код: Выделить всё
{
trigger_error('NO_FORUM');
header("HTTP/1.0 404 Not Found");
}
посмотреть можно с помощью например этого сервиса http://mainspy.ru/otvet_servera
http://pcfixinfo.ru - Форум о ремонте и обслуживании персональных компьютеров.
-
- phpBB 1.0.0
- Сообщения: 6
- Стаж: 12 лет 8 месяцев
- Контактная информация:
Re: Свой обработчик ошибочных url
Добавление к вышесказанному.
сделал вывод кода 404 для закрытых (скрытых) форумов, и тем в них. Допустим есть ссылка в общедоступной теме на тему из закрытого форума. Поисковик по ней переходит, и индексирует страницу вида "Для просмотра этого форума вы должны быть авторизованы."
Получается засорение индекса поисковика.
Выход очень простой:
Заменить в viewtopic.php
на
Заменить в viewforum.php
}
на
сделал вывод кода 404 для закрытых (скрытых) форумов, и тем в них. Допустим есть ссылка в общедоступной теме на тему из закрытого форума. Поисковик по ней переходит, и индексирует страницу вида "Для просмотра этого форума вы должны быть авторизованы."
Получается засорение индекса поисковика.
Выход очень простой:
Заменить в viewtopic.php
Код: Выделить всё
// Start auth check
if (!$auth->acl_get('f_read', $forum_id))
{
if ($user->data['user_id'] != ANONYMOUS)
{
trigger_error('SORRY_AUTH_READ');
}
Код: Выделить всё
// Start auth check
if (!$auth->acl_get('f_read', $forum_id))
{
header("HTTP/1.1 404 Not Found");
if ($user->data['user_id'] != ANONYMOUS)
{
trigger_error('SORRY_AUTH_READ');
}
Код: Выделить всё
// Check if the user has actually sent a forum ID with his/her request
// If not give them a nice error page.
if (!$forum_id)
{
trigger_error('NO_FORUM');
на
Код: Выделить всё
// Check if the user has actually sent a forum ID with his/her request
// If not give them a nice error page.
if (!$forum_id)
{
trigger_error('NO_FORUM');
header("HTTP/1.1 404 Not Found");
}
http://pcfixinfo.ru - Форум о ремонте и обслуживании персональных компьютеров.
Re: Свой обработчик ошибочных url
Здравствуйте. Извините за то, что поднимаю старую тему, но, как говорится в "тему". Может кто сталкивался с подобной проблемой: при переходе на удалённое сообщение авторизованным пользователям выводится информация "запрошенной темы не существует", а гостям пустое поле и в титле удалённого топика прописанный титл удалённой страницы, а не "запрошенного сообщения не существует". При переходе по некорректному адресу срабатывает мод error.php и выводится информация о битой ссылке, страница 404 для гостей и авторизованных пользователей.
Форум 3.0.14 с установленным сео модом.
Форум 3.0.14 с установленным сео модом.