Приветсвую!
В настройках виртульного хоста прописано:
RewriteEngine On
RewriteRule ^/print/([a-z]+)/?$ /print.php?to=$1 [L]
RewriteRule ^/print/([a-z]+)/(int|ext)/?$ /print.php?to=$1&q=$2 [L]
RewriteRule ^/([a-z]+)/?$ /index.php?to=$1 [L]
RewriteRule ^/([a-z]+)/(([a-z]|[0-9])+)/?$ /index.php?to=$1&q=$2 [L]

Если я хожу по ссылка site.ru/news или site.ru/search, назовем их 
однокомпонентными, все хорошо. Стоит мне перейти по двукомпонентной ссылке, 
site.ru/mail/int, так сразу все ссылки получают префикс. Трансформируются из 
site.ru/news в site.ru/mail/news.

В логах следующее:
127.0.0.1 - - [11/Jul/2009:20:14:48 +0400] 
[office.company.ru/sid#86b5d70][rid#8f9a2a0/initial] (2) rewrite '/mail/int' -> 
'/index.php?to=mail&q=int'
127.0.0.1 - - [11/Jul/2009:20:14:48 +0400] 
[office.company.ru/sid#86b5d70][rid#8f9a2a0/initial] (3) split 
uri=/index.php?to=mail&q=int -> uri=/index.php, args=to=mail&q=int
127.0.0.1 - - [11/Jul/2009:20:14:48 +0400] 
[office.company.ru/sid#86b5d70][rid#8f9a2a0/initial] (2) local path result: 
/index.php
127.0.0.1 - - [11/Jul/2009:20:14:48 +0400] 
[office.company.ru/sid#86b5d70][rid#8f9a2a0/initial] (2) prefixed with 
document_root to /var/www/office/index.php
127.0.0.1 - - [11/Jul/2009:20:14:48 +0400] 
[office.company.ru/sid#86b5d70][rid#8f9a2a0/initial] (1) go-ahead with 
/var/www/office/index.php [OK]
127.0.0.1 - - [11/Jul/2009:20:14:51 +0400] 
[office.company.ru/sid#86b5d70][rid#8f96290/initial] (2) init rewrite engine 
with requested uri /mail/search
                                                                                
                                                       ^^^^^^^^^^^^^^^^^       
127.0.0.1 - - [11/Jul/2009:20:14:51 +0400] 
[office.company.ru/sid#86b5d70][rid#8f96290/initial] (3) applying pattern 
'^/print/([a-z]+)/?$' to uri '/mail/search'
127.0.0.1 - - [11/Jul/2009:20:14:51 +0400] 
[office.company.ru/sid#86b5d70][rid#8f96290/initial] (3) applying pattern 
'^/print/([a-z]+)/(int|ext)/?$' to uri '/mail/search'

Если модифицировать правило установкой флага R, RewriteRule 
^/([a-z]+)/(([a-z]|[0-9])+)/?$ /index.php?to=$1&q=$2 [L,R], то "эффект 
префикса" пропадает и все работает как надо. Но, что естественно, видна строка 
запроса.

Почему это происходит и как с этим бороться?
Спасибо.


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Ответить