虚拟主机对于通配符子域和静态子域
我有一个奇怪的情况,我想要的urlapp1.example.com
, example.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。