Форум ApacheDev

Apache isn't the fastest or maximally customizable web server, its popularity comes from the fact that it provides a very good balance of these things bundled with maximum portability and reliability.

Вы не зашли.

#1 2008-08-14 02:46:35

ivan
Новичок
Зарегистрирован: 2008-08-14
Сообщений: 1
Рейтинг :   

Cтранное преобразование и флаг PT (passthrough)

В конфиге следующие правила:

RewriteRule ^en/?(.*)$    $1?lang=en [NC,QSA]
RewriteRule (.+)/(.+)-(\d+)\.html$               models.php?p1=$1&p2=$3 [NC,L,QSA]

Ожидаю, такое вот преобразование:
/en/a/a-0.html  ->  /a/a-0.html?lang=en  -> models.php?p1=a&p2=a&lang=en

А на самом деле происходит следующее (по логу):
-----
rewrite en/a/a-0.html -> a/a-0.html?lang=en
rewrite a/a-0.html/a/a-0.html -> models.php?p1=a/a-0.html/a&p2=0
strip document_root prefix: Dhmm*/*/*/models.php -> /*/models.php
-----

Интересно, почему для второго на вход поступило a/a-0.html/a/a-0.html sad(

Использование флага PT помогло решить проблему.
RewriteRule ^en/?(.*)$    $1?lang=en [NC,QSA,PT]

Кто может объяснить почему mod_rewrite ведет себя таким образом и если есть более
элегантное решение - напишите пожалуйста.

Заранее благодарен.

Отредактированно ivan (2008-08-14 20:24:05)

Неактивен

 

Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson