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

时间:2018-02-09 14:12:34

标签: apache .htaccess subdomain virtualhost

我有一个配置接受生产服务器上的许多域(由上游代理过滤)。此Apache会在80端口上接受所有域,并将DocumentRoot称为http://beta.domain1.ch

我想要的是将每个域的所有 beta 子域名(http://beta.domain2.chhttp://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>

感谢您的帮助

1 个答案:

答案 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上进行测试。