Apache virtualhost :所有域的特定主机(子域)

Apache virtualhost : a specific host (subdomain) for all domains

我的配置在生产服务器上接受许多域(由上游代理过滤)。此 Apache conf 在 80 端口上接受 所有域 并调用 /var/prod/ 作为 DocumentRoot.

我想要的是仅重定向所有 beta 子域(http://beta.domain1.chhttp://beta.domain2.chhttp://beta.domain3.ch、...)域到 /var/beta/ 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>

感谢帮助

由于 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>

Working on Apache 2.2, I need to test it on 2.4.