|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/14454dec810f0.html, оценка из 5, голосов 10
|