Прошу помочь с mod rewrite

Serberg

Гуру форума
Регистрация
6 Апр 2009
Сообщения
239
Реакции
70
есть ссылка
Код:
http://site.ru/bla1/bla2/bla3

с помощью такого правила
Код:
RewriteRule ^(.*)/(.*)/(.*)$ index.php?var1=$1&var2=$2&var3=$3 [L]

она переделывается в
Код:
index.php?var1=bla1&var2=bla2&var3=bla3

а теперь вопрос

как привести ссылку вида
Код:
http://site.ru/bla1/bla2/bla3?var4=bla4

в вот такую
Код:
index.php?var1=bla1&var2=bla2&var3=bla3&var4=bla4

Сразу скажу - гуглил, читал, изучал, но ответ найден не был. Прошу не предлагать экранировать вопросительный знак, ибо он не экранируется.
 
в данном случае достаточно простого добавления к правилу флага QSA, сохраняющего строку запроса

Код:
RewriteRule ^(.*)/(.*)/(.*)$ index.php?var1=$1&var2=$2&var3=$3 [L,QSA]
 
shamantc написал(а):
Попробуй сделать через генератор

Было бы все так просто )))
Правило нужно строить исходя из этой ссылки
Код:
http://site.ru/bla1/bla2/bla3?var4=bla4

а не из
Код:
index.php?var1=bla1&var2=bla2&var3=bla3&var4=bla4

Если бы я мог менять реврайтенную строку, было бы шоколадно, тогда бы я не заморачивался и написал бы просто

Код:
http://site.ru/bla1/bla2/bla3/bla4
вместо
[COLOR="SeaGreen"]http://site.ru/bla1/bla2/bla3[/COLOR][COLOR="red"]?var4=bla4[/COLOR]

То что выделено зеленым я могу изменить, а то что красным - нет.

Добавлено через 6 минут
pitkina написал(а):
в данном случае достаточно простого добавления к правилу флага QSA, сохраняющего строку запроса

Это правило работает для этого урла
Код:
http://site.ru/bla1/bla2/bla3

А для этого не работает
Код:
http://site.ru/bla1/bla2/bla3?var4=bla4

Точнее работает, но вот переменная var4 тупо теряется.

---------- Post added at 20:08 ---------- Previous post was at 19:02 ----------

Немного подразобрался в теме, и узнал что все же можно изменить последнюю переменную в урл.
Теперь новый вопрос (при снятии нерешенного старого)

как привести такой урл
Код:
http://site.ru/bla1/bla2/bla3[COLOR="Red"]:bla4[/COLOR]
к такому
Код:
index.php?var1=bla1&var2=bla2&var3=bla3&var4=bla4

Теперь заковырка с двоеточием, пробовал экранировать - не получается, все пишется в третью переменную.
Причем нужно чтобы htacess обрабатывал урлы двух видов, без этой четвертой переменной и с ней.
Надеюсь задача упростилась...
 
Назад
Сверху