Я хочу настроить виртуальные хосты используя mod_rewite (подразумевается создание сервера с динамическими хостами), но проблема в том, что сервер упорно не хочет понимать пути. Сам сервак -apache 2.0.44 - стоит на машине с NT5.1+SP1.
Допустим есть запрос
http://mail.home/
вот часть конфига сервера:
Код:
RewriteEngine On
RewriteLogLevel 12
RewriteLog /var/logs/apache/apache_rewrite-log
RewriteMap lc int:tolower
RewriteMap vhostsmap txt:/hosts/vhosts.map
RewriteCond ${lc:%{HTTP_HOST}|NONE} ^(.+)$
RewriteCond %1 !^.*gcserver.home$
RewriteCond ${vhostsmap:%1} ^/(.*)$ [NC]
RewriteRule ^/(.*)$ /hosts/%1/www/$1
зыж никакие директивы VirtualHost и NameVirtualHost не используются и не должны использоваться.
путь /hosts/home/mail/www/ что вышел в конце, реально существует.
Вот что нам выдал сервак в логе:
Код:
init rewrite engine with requested uri /
applying pattern '^/(.*)$' to uri '/'
map lookup OK: map=lc key=mail.home -> val=mail.home
RewriteCond: input='mail.home' pattern='^(.+)$' => matched
RewriteCond: input='mail.home' pattern='!^.*gcserver.home$' => matched
cache lookup FAILED, forcing new map lookup
map lookup OK: map=vhostsmap key=mail.home[txt] -> val=/home/mail
RewriteCond: input='/home/mail' pattern='^/(.*)$' => matched
rewrite / -> /hosts/home/mail/www/
local path result: /hosts/home/mail/www/
есть мнение, что он подставляет этот путь к своему DOCUMENT_ROOT пути, но я менял этот путь на /hosts/ предварительно это вычеркнув из /hosts/%1/www/$1 и все равно без результатно.