Для первых двух сделал такие правила: #^/catalog/(.*)/$# /catalog/catalog.php IBLOCK_CODE=$1 #^/catalog/(.*)/([0-9]+)/$# /catalog/catalog2.php IBLOCK_CODE=$1&SECTION_ID=$2 Но если честно, такие правила работают както непонятно. Эти правила не срабатывают, если после ссылки идут какие-то параметры например: http://test.ru/catalog/название_каталога/?ttt=111 Или например если ссылка будет такой: http:// test.ru /catalog/electro/954xx/ то отпрабатывает первое правило, т.е. в переменную IBLOCK_CODE передаётся значение "electro/954xx". В этом случае я бы не хотел чтобы вобще правила не срабатывали. Помогите написать правило, чтобы каждое из них работало как с параметром после ссылки ?tt=11, так и без него. Ну а если короче: Как будет выглядеть правило для:
1) http:// test.ru /catalog/electro/ и http:// test.ru /catalog/electro/?tt=11&tt2=22 ... 2) http:// test.ru /catalog/electro/954/ и http:// test.ru /catalog/electro/954/?tt=11&tt2=22 ... 3) http:// test.ru /catalog/electro/954/2323/ и http:// test.ru /catalog/electro/954/2323/?tt=11&tt2=22 ...
***************** Пока для первого случая придумал вот такую конструкцию: #^/catalog/([a-z_]+)/(\?.*|$)#
Вобщем сделал пока так: #^/catalog/([a-z_]+)/(\?.*|$)# #^/catalog/([a-z_]+)/([0-9]+)/(\?.*|$)# #^/catalog/([a-z_]+)/([0-9]+)/([0-9]+)/(\?.*|$)#
Но отсюда возникает следующий вопрос: Т.к. коды страницы для 1 и 2 случая практически одинаковые, возможно ли обьединить первое и второе правило в одно ?
Измените порядок на противоположный - сначала самый точный, потом менее точный, потом вообще общий, иначе у вас всегда будет 1е ваше правило срабатывать.