Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Страница доступна с любым #SECTION_CODE#

00 голосов
1
Здравствуйте. Подскажите, как решить проблему, все перерыл. Собственно говоря, страницы сайта типа:

www.site.ru/catalog/razdel/tovar

Но если вместо razdel вписать произвольный код, например:

www.site.ru/catalog/razdel777/tovar

То страница все ровно доступна, не отдает ошибки 404, таже самая страничка с титлом и тд.

Это не критично, но проблемно, например, если кто либо случайно ошибется, или злоумышленники скормят в аддурилке подобные страницы.

Как это закрыть?????
спросил 06 Июнь, 16 от аноним
редактировать 26 Июль, 16

1 Ответ

00 голосов
Похоже что это стандартное поведение ЧПУ Битрикс (по крайней мере на нескольких сайтах вижу то же самое). Как решить. В шаблоне компонента карточки товара, в component_epilog.php (он не кешируется!), делаем проверку соответствия имени раздела в $_SERVER['REQUEST_URI'] и имени раздела, в котором лежит товар. Если не соответствуют - делаем LocalRedirect на правильный адрес.

Ещё есть вариант в <head> добавить <link rel="canonical" href="http//основной адрес страницы" />. Вроде бы всеми поисковиками поддерживается.
ответил 07 Июнь, 16 от root (25,590 баллов)
Благодарю за отклик, но на данный момент программиста нет, а я всего лишь вебмастер, поэтому сложно соорудить что-то подобное для меня.
В тот же  component_epilog.php помещали по некоторым рекомендациям:
if (!is_array($arResult["SECTION"]))
{
   @define("ERROR_404", "Y");
   if($arParams["SET_STATUS_404"]==="Y")
      CHTTP::SetStatus("404 Not Found");
}
Но это не сработало.

Похожие вопросы

0 голосов
1 ответ
0 голосов
1 ответ
+1 голос
1 ответ
0 голосов
1 ответ