![]() |
виртуальные хосты и mod_rewrite
Я хочу настроить виртуальные хосты используя mod_rewite (подразумевается создание сервера с динамическими хостами), но проблема в том, что сервер упорно не хочет понимать пути. Сам сервак -apache 2.0.44 - стоит на машине с NT5.1+SP1.
Допустим есть запрос http://mail.home/ вот часть конфига сервера: Код:
RewriteEngine On путь /hosts/home/mail/www/ что вышел в конце, реально существует. Вот что нам выдал сервак в логе: Код:
init rewrite engine with requested uri / |
Решение найдено
В общем, я разобрался с этой проблемой, хоть это и стоило огромных усилий и сотен перезапусков сервера :yees:
А загвоздка была вот в чем: При получении результата (правило RewriteRule ^/(.*)$ /hosts/%1/www/$1), допустим есть путь /hosts/home/mail/www/ подставлялся путь DocumentRoot сервера, что приводило к такому результату: g:/usr/local/apache/htdocs//hosts/home/mail/www/, соответственно получалась лажа. Решилось все банально просто: путь DocumentRoot сервера был изменен с g:/usr/local/apache/htdocs/ на g:/. Конечно были еще некоторые подстройки (ниже). И добавлена pass through опция, что позволяла передавать путь для дальнейших подстановок/преобразований серверу. И не маловажным было добавление опции No Subrequests чтобы исключить повторных добавлений пути!! Вот пример конфига, что работает на данный момент: Это файл vhosts.conf что подключается дополнительно к апачевскому конфигу. Код:
#добавлены опции "по умолчанию", кстати без них тоже на работало Остается решить как еще обойти ДНС, ведь при добавлении нового имени нужно перечитывать всю зону, после чего проходит минут 5-10 прежде, чем будет новый хост виден.... У меня стоит SimpleDNS v.3.20.02 |
Часовой пояс GMT +4, время: 21:09. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.