Вопрос по Mod Rewrite

x2com

Новичок
Вопрос по Mod Rewrite (снова :) )

Очень не хочется писать рулы на разные виды url. А вот как сделать, чтоб правила были (образно) такого вида, типа:
PHP:
RewriteRule ^part_([0-9]+)(/|\.html)*$    index.php?part=$1
RewriteRule ^tid_([0-9]+)(/|\.html)*$     &theid=$1
Тоесть, первый рул имеет такой вид, какой есть, а каждое следующее правило добавляет свой результат к предидущему. В результате url (скрытый от пользователя) должен получиться примерно такой: index.php?part=676&theid=56 ...
Т.е. на выходе надо получить перевариваемый php скриптом url, состоящий из произвольного количества и очерёдеости переменных.
Если у кого есть идеи, буду благодарен.
Заранее спасибо!
 

vadim

Guest
x2com
А почему одним Рулом всё бы и не написать?? зачём разделять то??
 

x2com

Новичок
А почему одним Рулом всё бы и не написать?? зачём разделять то??
У меня не фиксированная очерёдность (и наименования) переменных. Как их описать одним регулярным выражением если точно не известно какая переменная на каком месте в строке запроса будет находиться? Если можно пример...
 

x2com

Новичок
alexhemp
Значит для такой цели лучше писать скрипт разбирающий и "пережёвывающий" URL запрос в привычный для движка вид?
 

Жигaн

Новичок
Если правильно понял вопрос то можно так
RewriteRule ^part_([0-9]+)(.*) $2?part=$1 [QSA,L]
RewriteRule ^tid_([0-9]+)(.*) $2?id=$1 [QSA,L]

# Catch all rule
RewriteRule (.*) index.php?left=$1 [QSA,L]

Обработает /part_1/tid_2 и /tid_2/part_1 одинаково.
Или нужен только первый вариант?
Правда неясна мотивация.
 

x2com

Новичок
Автор оригинала: Жигaн
Если правильно понял вопрос то можно так
RewriteRule ^part_([0-9]+)(.*) $2?part=$1 [QSA,L]
RewriteRule ^tid_([0-9]+)(.*) $2?id=$1 [QSA,L]

# Catch all rule
RewriteRule (.*) index.php?left=$1 [QSA,L]

Обработает /part_1/tid_2 и /tid_2/part_1 одинаково.
Или нужен только первый вариант?
Правда неясна мотивация.
Да это в принципе то, что надо, но я уже написал обработчик URI на PHP.
А нужно это было для того, чтобы не переписывать движку у одного скрипта под SEF а просто перестроить урлы из "касивого" вида в обычный для переваривания скриптом.

Но всё равно спасибо мне это ещё пригодится! :)
 
Сверху