我有一个配置接受生产服务器上的许多域(由上游代理过滤)。此Apache会在80端口上接受所有域,并将DocumentRoot
称为http://beta.domain1.ch
。
我想要的是将每个域的所有 beta 子域名(http://beta.domain2.ch
,http://beta.domain3.ch
,/var/beta/
,...)重定向到{{1 DocumentRoot文件夹。
是否可以在virtualhost标记中使用掩码,如下所示?
<VirtualHost beta.*:80>
或者我是否需要将所有域名都放在ServerAlias
?
<VirtualHost *:80>
DocumentRoot /var/beta/
VirtualDocumentRoot /var/beta/
ServerAlias beta.domain1.ch
ServerAlias beta.domain2.ch
ServerAlias beta.domain3.ch
ServerAlias beta.domain4.ch
...
</virtualhost>
<VirtualHost *:80>
DocumentRoot /var/prod/
VirtualDocumentRoot /var/prod/
ServerAlias *.domain1.ch
ServerAlias *.domain2.ch
ServerAlias *.domain3.ch
ServerAlias *.domain4.ch
...
</virtualhost>
感谢您的帮助
答案 0 :(得分:1)
由于VirtualHost和serverNname不接受通配符,实际上serverAlias会这样做。这对我有用:
<VirtualHost *:80>
ServerName beta-server.main-domain.com
ServerAlias beta.*
DocumentRoot /var/beta/
VirtualDocumentRoot /var/beta/
</virtualhost>
<VirtualHost *:80>
ServerName prod-server.main-domain.com
ServerAlias www.*
DocumentRoot /var/prod/
VirtualDocumentRoot /var/prod/
</virtualhost>
使用Apache 2.2,我需要在2.4上进行测试。