Ключевые слова:mod_rewrite, apache, web, (найти похожие документы)
Date: Wed, 27 Nov 2002 14:34:51 +0300
From: "Alexander (Thor) Ivashchenko" <thor@CompNet.RU>
Subject: Динамическое задание правил редиректа для mod_rewrite через файл.
>>> Динамически это делается как-либо? Или только явно прописывать хосты?
>>
>> Делаешь сравнение HTTP_HOST с файлом,
>> в котором прописаны соответствия между хостами
>> и каталогами на диске...
>
> То есть разбирать скриптом все запросы к неизвестным субдоменам,
Нет не скриптом,
а правилами mod_rewrite
RewriteEngine On
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/some_path/vhost.map
# not my own site
RewriteCond ${lowercase:%{SERVER_NAME}} !www\.example\.com$
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# main remap
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/docs/$1
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# cgi remap
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/cgi-bin/(.*)$ %1/cgi/$1
Вот примерно таким образом.
Файл vhost.map выглядит так:
# site1.ru
www.site1.ru /path/www/virtual/site1.ru
# site2.ru
www.site2.ru /path/www/virtual/site2.ru
# site3.ru
www.site3.ru /path/www/virtual/site3.ru
site3.my-host.ru /path/www/virtual/site3.ru
А вообще я это брал и документации к апачу
про Mass Virtual Hosting
> приходящие (а так и сделано) на корневую директорию,
> а затем редиректить на целевой файл?
> Скриптом, а не в mod_rewrite?
Можно вместо текстового файла vhost.map
задействовать скрипт.