Мой файл httpd-vhosts.conf выглядит так:
<VirtualHost *:80>
DocumentRoot "/www/foo/htdocs"
ServerName foo
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/www/bar/htdocs"
ServerName bar
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/www/baz/htdocs"
ServerName baz
</VirtualHost>
Заметили узор? Есть ли способ сократить дублирование, или я застрял с отдельной записью VirtualHost для каждого сайта?
Я предлагаю вам взглянуть на веб-сайт Apache для динамических виртуальных хостов. Другие методы требуют перезапуска сервера Apache.
http://httpd.apache.org/docs/2.0/vhosts/mass.html
Я понял, как это сделать, прочитав ответ Темного ниндзя. Вот как теперь выглядит мой файл httpd-vhosts.conf.
# Dynamic virtual hosts.
# See http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html
UseCanonicalName Off
VirtualDocumentRoot /www/%0/htdocs/
Мне также пришлось включить mod_vhost_alias, раскомментировав эту строку в httpd.conf
LoadModule vhost_alias_module modules/mod_vhost_alias.so
Есть два очень разных ответа.
Я рекомендую №2, и думаю, прагматичные программисты тоже могут.