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

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Serberg, 8 янв 2011.

  1. Serberg

    Serberg

    Регистр.:
    7 апр 2009
    Сообщения:
    238
    Симпатии:
    69
    есть ссылка
    Код:
    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
    
    Сразу скажу - гуглил, читал, изучал, но ответ найден не был. Прошу не предлагать экранировать вопросительный знак, ибо он не экранируется.
     
  2. shamantc

    shamantc ЗлОй ШаМан

    Заблокирован
    Регистр.:
    3 ноя 2008
    Сообщения:
    651
    Симпатии:
    183
    Serberg нравится это.
  3. pitkina

    pitkina

    Регистр.:
    1 апр 2007
    Сообщения:
    253
    Симпатии:
    176
    в данном случае достаточно простого добавления к правилу флага QSA, сохраняющего строку запроса

    Код:
    RewriteRule ^(.*)/(.*)/(.*)$ index.php?var1=$1&var2=$2&var3=$3 [L,QSA]
     
    Serberg нравится это.
  4. Serberg

    Serberg

    Регистр.:
    7 апр 2009
    Сообщения:
    238
    Симпатии:
    69
    Было бы все так просто )))
    Правило нужно строить исходя из этой ссылки
    Код:
    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 минут
    Это правило работает для этого урла
    Код:
    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 обрабатывал урлы двух видов, без этой четвертой переменной и с ней.
    Надеюсь задача упростилась...