Tag Archives: vhost_alias

vhost_alias проблемы c $_SERVER[DOCUMENT_ROOT] и .htaccess

Статей по настройке vhost_alias много, но почти никто не упоминает о проблемах.
Я пока нашёл две. Первая — это некорректно начинает работать $_SERVER[DOCUMENT_ROOT] и вторая тоже самое с .htaccess.
Начну с .htaccess. При обычных настройках apache при записи в .htaccess:

строка
http://domen.ru/img/picture.jpg
заменится на
http://domen.ru/images/picture.jpg.
При включении vhost_alias произойдёт следующее чудо:
http://domen.ru/domen.ru/images/picture.jpg
и естественно ничего работать не будет.
Решается это легко, добавление записи в .htaccess:

С $_SERVER[DOCUMENT_ROOT] чуть сложнее, но решаемо.
При включении vhost_alias на всех сайтах $_SERVER[DOCUMENT_ROOT] начинает отдавать /var/www, ни или какой корень настроен.
Вариантов решения два. Правильный это использовать dirname(__FILE__) вместо $_SERVER[DOCUMENT_ROOT].
Второй, если уже всё написано и лень исправлять, то рядом с настройкой vhost_alias допишем:

В корне создадим файл fix_docroot.php с таким содержанием:

Строчка $_SERVER[«OLD_DOCUMENT_ROOT»] нужна только для сохранения старого $_SERVER[«DOCUMENT_ROOT»], мало ли понадобится.
Ну и всё, рестартим apache и провераем.