虚拟主机对于通配符子域和静态子域

我有一个奇怪的情况,我想要的urlapp1.example.comexample.com*.example.com都使用不同的虚拟主机。 这是我所拥有的(不包括example.com因为它使得它变得更加混乱)。

 <VirtualHost *> ServerName app1.example.com ServerAlias app1.example.com DocumentRoot = /var/www/app1 # Other configuration for this app here </VirtualHost> <VirtualHost *> ServerName wildcard.example.com ServerAlias *.example.com DocumentRoot = /var/www/wildcard # other configuration for this app here </VirtualHost> 

问题是他们冲突。 无论哪一个首先列出胜出。 我如何同时托pipe通配符虚拟主机和特定的虚拟主机?

注意:我不只是在configuration中更改DocumentRoot ,所以使用mod_rewrite更改DocumentRootvariables并不能解决这个问题。

 <VirtualHost *:80> DocumentRoot /var/www/app1 ServerName app1.example.com </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/example ServerName example.com </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/wildcard ServerName other.example.com ServerAlias *.example.com </VirtualHost> 

应该工作。 如果你没有明确的匹配,第一个条目将成为默认值。 所以如果你有app.otherexample.com指向它,它会被捕获app1.example.com。