двойное применение "add per-dir prefix" в ModRewrite Апача

N
На сайте с 05.09.2006
Offline
58
724

Такое правило стоит на виртуальном хостинге (named-based) в файле .htaccess:

RewriteEngine on

RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

При запросе _http://zzz/

Получаю ответ 400 - bad request

Лог преобразования такой:

127.0.0.1 - - [04/Nov/2007:15:59:37 -0800] [zzz/sid#728c98][rid#7c4160/initial] (3) [per-dir e:/www/zzz/html/] add path-info postfix: e:/www/zzz/html -> e:/www/zzz/html/

127.0.0.1 - - [04/Nov/2007:15:59:37 -0800] [zzz/sid#728c98][rid#7c4160/initial] (3) [per-dir e:/www/zzz/html/] strip per-dir prefix: e:/www/zzz/html/ ->

127.0.0.1 - - [04/Nov/2007:15:59:37 -0800] [zzz/sid#728c98][rid#7c4160/initial] (3) [per-dir e:/www/zzz/html/] applying pattern '\.(js|ico|gif|jpg|png|css)$' to uri ''

127.0.0.1 - - [04/Nov/2007:15:59:37 -0800] [zzz/sid#728c98][rid#7c4160/initial] (2) [per-dir e:/www/zzz/html/] rewrite -> index.php

127.0.0.1 - - [04/Nov/2007:15:59:37 -0800] [zzz/sid#728c98][rid#7c4160/initial] (3) [per-dir e:/www/zzz/html/] add per-dir prefix: index.php -> e:/www/zzz/html/index.php

127.0.0.1 - - [04/Nov/2007:15:59:37 -0800] [zzz/sid#728c98][rid#7c4160/initial] (3) [per-dir e:/www/zzz/html/] add per-dir prefix: e:/www/zzz/html/index.php -> e:/www/zzz/html/e:/www/zzz/html/index.php

Настройки виртуального хостинга такие:

<VirtualHost 127.0.0.1>

DocumentRoot E:\www\zzz\html

ServerName zzz

RewriteLogLevel 3

RewriteLog "E:\www\zzz\rwlog.txt"

</VirtualHost>

Как избавиться от двойного применения в конце правила "add per-dir prefix"?

N
На сайте с 05.09.2006
Offline
58
#1

Нашел ответ.

Данный баг известен еще как "double add per-dir prefix problem" и проявляется только на windows.

И в общем случае лечиться только переходом на более поздние версии apache (более поздние чем 1.3.32). У меня все разрешилось после перехода на 2.2.6

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий