Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     28 Mar 2002  16:22:13
 To : Kirill Khilko
 Subject : Re: mod_rewrite
 -------------------------------------------------------------------------------- 
 
 Здравствуй, Kirill Khilko.
 
 KK> я понимаю, что здесь это оффтопик, но больше обратиться некуда. если
 KK> знаете -- можете смело поставить мне плюс и указать направление в другую
 KK> эху.
 
 В апачевскую рассылку сходить, например.
 
 KK> есть три вопроса по сабжу...
 
 KK> 1. почему вот на такое правило:
 
 KK> RewriteRule ^text/([0-9])/$     text/0$1/01/
 KK> RewriteRule ^(.*)/$             /info/index.php?page=$1 [L]
 KK> RewriteRule ^(/*)$              /info/index.php?page= [L]
 
 KK> и запрос урла http://localhost/info/text/7/
 
 KK> происходит вот это (кусок из лога):
 
 KK> add path-info postfix: d:/www/info/text -> d:/www/info/text/7/
 KK> strip per-dir prefix: d:/www/info/text/7/ -> text/7/
 KK> applying pattern '^text/([0-9])/$' to uri 'text/7/'
 KK> rewrite text/7/ -> text/07/01/
 KK> add per-dir prefix: text/07/01/ -> d:/www/info/text/07/01/
 KK> add per-dir prefix: d:/www/info/text/07/01/ ->
 KK> d:/www/info/d:/www/info/text/07/01/
 KK> add path-info postfix: d:/www/info/d:/www/info/text/07/01/ ->
 KK> d:/www/info/d:/www/info/text/07/01//7/
 KK> strip per-dir prefix: d:/www/info/d:/www/info/text/07/01//7/ ->
 KK> d:/www/info/text/07/01//7/
 KK> applying pattern '^(.*)/$' to uri 'd:/www/info/text/07/01//7/'
 KK> rewrite d:/www/info/text/07/01//7/ ->
 KK> /info/index.php?page=d:/www/info/text/07/01//7
 
 KK> и выводится, соответственно, "d:/www/info/text/07/01//7", а нужно
 KK> чтобы на входе скрипта было "text/07/01/"
 
 KK> то есть конкретно меня напрягает то, что оно делает add per-dir prefix
 KK> и add path-info postfix -- как этого избежать, я так и не понял...
 
 Я так понимаю, что эти правила у тебя per-directory, с которыми несколько
 специфическая логика работы. См. доку на mod_rewrite.
 
 KK> 2. как сделать, что бы, например, для этого правила:
 
 KK> RewriteRule ^(.*/)$             /info/index.php?page=$1 [L]
 KK> RewriteRule ^(/*)$              /info/index.php?page= [L]
 
 KK> не нужно было каждый раз писать /info/ или /test/ и т.п.?
 
 А что нужно?
 
 KK> 3. если я делаю правило, дописывающее / для псевдо-каталогов
 KK> (типа /about/, /contact/, etc), то под это правило попадает ВСЕ, что
 KK> не заканчивается слэшем, включая то, что совсем не должно
 KK> обрабатываться (index.php, images/*.*, etc)
 
 KK> RewriteRule ^(.*)[^/]$             /info/index.php?page=$1/ [L]
 
 Что довольно естественно...
 
 KK> как быть в этом случае? надо ли писать правила, транслирующие обычные
 KK> файлы (index.php, images/*.*, etc) в себя же с опцией [L]?
 
 Примерно. Либо писать более продвинутый регекс.
 
 -- 
 Artem Chuprina
 Communiware.net
 RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757
 --- ifmail v.2.15dev5
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 mod_rewrite   Kirill Khilko   28 Mar 2002 11:53:12 
 Re: mod_rewrite   Artem Chuprina   28 Mar 2002 16:22:13 
Архивное /ru.cgi.perl/14454dec810f0.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional