Urlrewrite в битриксе и работа с utm-метками
Запись от 18.12.2016
Правила обработки адресов в битриксе довольно скользкая тема.
Если почитать документацию, то можно увидеть, что condition для обработчика рекомендуется писать в виде:
Этот подход плох тем, что к такому адресу не добавить utm-метки. А в режиме администрирования битрикс сам добавляет GET-параметры страницы, что приводит к невалидности страницы - «Элемент не найден» в случае компонента «bitrix:catalog.section».
В простом случае можно дописать правило таким образом:
Теперь страница валидна с GET-параметрами админки и utm-метками, но также и валидна с мусором. Например, ссылка «/blog/page/blablabla» будет валидной и страница откроется, однако тут должна быть 404 ошибка - страница не найдена. Потенциально это может привести к страницам-дублям в поисковиках, а этого стоит избегать.
Поэтому, на мой взгляд, стоит писать правило так:
В таком случае страница будет валидной либо в чистом виде, либо с GET-параметрами.
Если почитать документацию, то можно увидеть, что condition для обработчика рекомендуется писать в виде:
#^/blog/(\w+)/#
Этот подход плох тем, что к такому адресу не добавить utm-метки. А в режиме администрирования битрикс сам добавляет GET-параметры страницы, что приводит к невалидности страницы - «Элемент не найден» в случае компонента «bitrix:catalog.section».
В простом случае можно дописать правило таким образом:
#^/blog/(\w+)/.*#
Теперь страница валидна с GET-параметрами админки и utm-метками, но также и валидна с мусором. Например, ссылка «/blog/page/blablabla» будет валидной и страница откроется, однако тут должна быть 404 ошибка - страница не найдена. Потенциально это может привести к страницам-дублям в поисковиках, а этого стоит избегать.
Поэтому, на мой взгляд, стоит писать правило так:
#^/blog/(\w+)/($|\?.+$)#
В таком случае страница будет валидной либо в чистом виде, либо с GET-параметрами.