Как правильно написать регулярное выражение для каталога в битрикс?

Всем привет.

Друзья подскажите, как написать регулярное выражение. Я хочу чтобы

Если страница /catalog/ или /catalog/#SECTION_CODE#/ , то {
моя верстка
}
Если страница /catalog/#SECTION_CODE#/#ELEMENT_CODE#/, то {
моя другая верстка
}
Если страница главная , или любая другая, то {
ничего
}

И подскажите, что почитать чтобы не быть тук - тук . Не обессудьте =)
  • Вопрос задан
  • 1330 просмотров
Решения вопроса 2
@KraydenSharp
Senior RegExp Developer
Обычно в bitrix такие вещи делаю на этой странице domain.ru/bitrix/admin/urlrewrite_list.php

Для каталога должны получиться примерно такие правила.

#^/catalog/([^/]+)/([^/]+)/#			/catalog/detail.php		ELEMENT_CODE=$2
#^/catalog/([^/]+)/#				/сatalog/section.php		SECTION_CODE=$1
#^/catalog/#					/сatalog/index.php
Ответ написан
Комментировать
@pavel__sidorov Автор вопроса
Снизашел свет на мою голову, получилось. Но если кто критикует, то плиз оптимизируйте

<?

if (preg_match('~^/catalog/([A-Za-z0-9]+)/([A-Za-z0-9]+)~', $_SERVER['REQUEST_URI'])) {

	echo "мы находимся на детальной странице каталога";
} 
elseif (preg_match('~^/catalog/([A-Za-z0-9]+)/~', $_SERVER['REQUEST_URI'])) {

	echo "Друг, это страница каталога, или раздела каталога";
}
elseif (preg_match('~^/catalog/~', $_SERVER['REQUEST_URI'])) {

	echo "Друг, это страница каталога, или раздела каталога";
}
else {
    echo "Любая другая страница не каталог, не раздел каталога, не страница детальнйо карточки товара";
}

?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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