
Я знаю, как настроить несколько хостов в файле 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 должен быть полностью квалифицированным доменом, это нормально.
решение1
Довольно просто:нет.
A DocumentRoot
должен быть единственным каталогом на сервере, подстановочные знаки не допускаются.
Тыможетиметь возможность добиться желаемого поведения, используя RewriteRule
утверждения, упомянутые вэтот ответ, но YMMV.
решение2
По крайней мере в версии 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