В моей конфигурации Apache есть следующее:
<VirtualHost *:80>
VirtualDocumentRoot /var/www/hosts/%0
ServerAlias *.test.galapagos.office
</VirtualHost>
В / var / www / hosts у меня есть каталог jason.test.galapagos.office и каталог bill.test.galapagos.office. Если я перейду на jason.test.galapagos.office в браузере, я получаю то, что ожидаю увидеть. То же и со счетом. Другими словами, все работает отлично.
Однако меня не совсем устраивает то, что происходит. Вместо /var/www/hosts/jason.test.galapagos.office и /var/www/hosts/bill.test.galapagos.office/ я бы хотел / home / jason / web и / home / bill / web .
Как я могу указать Apache для сопоставления с этими подкаталогами?
Спасибо Джейсон
Попробуй это:
<VirtualHost *:80>
#VirtualDocumentRoot /var/www/hosts/%0
VirtualDocumentRoot /home/%1/web
ServerAlias *.test.galapagos.office
</VirtualHost>
Я полагаю, что будут отправлены запросы на «jason.test.galapagos.office» на «/ home / jason / web»
Полный список директив VirtualDocumentRoot можно найти здесь:
http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html
0 the whole name 1 the first part 2 the second part -1 the last part -2 the penultimate part 2+ the second and all subsequent parts -2+ the penultimate and all preceding parts 1+ and -1+ the same as 0
Может ли это изменение сработать?
VirtualDocumentRoot /home/%0/web
Или вы можете рассмотреть возможность включения mod_userdir, который по умолчанию будет выглядеть как http://test.galapagos.office/~bill/