Я знаю, как настроить несколько хостов в файле apache httpd.conf, но можно ли сделать это динамическим.
Если я помещу свои папки в такие каталоги.
c:\
development\
websites\
SiteA
SiteB
SiteC
Могу ли я написать свой файл httpd.conf таким образом
<VirtualHost *:80>
ServerName *.example.com
DocumentRoot "c:/development/Websites/%1/"
</VirtualHost>
где %1
или другой маркер переменной - SiteA, если пользователь посещает sitea.example.com и т. д., или событие, если siteA должен быть полностью определенным доменом, и это нормально.
Довольно просто: нет.
А DocumentRoot
каталог на сервере должен быть единственным, использование подстановочных знаков не допускается.
Вы может иметь возможность получить то поведение, которое вам нужно, используя RewriteRule
заявления, упомянутые в этот ответ, но YMMV.
По крайней мере, в версии 2.4 вы можете:
<Macro virty $name>
<VirtualHost $name:80>
ServerName $name.example.com
DocumentRoot "c:/development/Websites/$name/"
</VirtualHost>
</Macro>
Use virty SiteA
Use virty SiteB
Use virty SiteC