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.
Вы не зашли.
В конфиге следующие правила:
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: D*/*/*/models.php -> /*/models.php
-----
Интересно, почему для второго на вход поступило a/a-0.html/a/a-0.html (
Использование флага PT помогло решить проблему.
RewriteRule ^en/?(.*)$ $1?lang=en [NC,QSA,PT]
Кто может объяснить почему mod_rewrite ведет себя таким образом и если есть более
элегантное решение - напишите пожалуйста.
Заранее благодарен.
Отредактированно ivan (2008-08-14 20:24:05)
Неактивен