具有多个ServerAlias的Apache2 Dynamic vHost

我正在尝试build立一个dynamicvHost,但遇到了一些麻烦。 它不会允许我设置多个ServerAlias。

<VirtualHost *:80> ServerAlias *.com ServerAdmin michael.ian.curry@gmail.com VirtualDocumentRoot /var/www/%1/production/html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> LogLevel warn </VirtualHost> 

上面的vHost只适用于' .com',我需要它为'WWW'工作。 .com'和'* .com'我假设设置ServerAlias将修复它,但它不工作。

 ServerAlias *.com www.*.com 

如果您有任何见解,请回复

–MichaelCurry

==编辑1 ==

示例redcrusher.com和www.redcrusher.com

==编辑2 ==

下面的代码也不起作用

 ServerAlias www.*.com *.com 

弄清楚了!

'www。*。com'必须在'* .com'之前执行这是因为serverAlias正在设置一个动态域,并且必须存在于“较小”别名之前。

例如:'www。*。com','dev。*。com','asdf。*。com'THEN'* .com'

vHost文件[production.conf]:

 <VirtualHost *:80> serverAlias www.*.com VirtualDocumentRoot /var/www/%2/production/html serverAdmin michael.ian.curry@gmail.com <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> LogLevel warn </VirtualHost> <VirtualHost *:80> serverAlias *.com VirtualDocumentRoot /var/www/%1/production/html serverAdmin michael.ian.curry@gmail.com <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> LogLevel warn </VirtualHost> 

我希望这可以帮助任何有这个问题的人!

–MichaelCurry

你必须这样使用

 serverAlias www.domain.com domain.com serverAlias *.domain.com 

如果你想用这种方式,你必须遵循秩序

 serverAlias www.*.com *.com 

问题是

 VirtualDocumentRoot /var/www/%1/production/html 

你使用一个动态的VirtualDocumentRoot意思

对于redcrusher.com VirtualDocumentRoot是

 /var/www/redcrusher/production/html 

并为www.redcrusher.com VirtualDocumentRoot是

 /var/www/www.redcrusher/production/html 

我觉得与分裂serverAlias三部分它解决

 serverAlias www.*.com VirtualDocumentRoot /var/www/%1/production/html/ serverAlias *.*.com VirtualDocumentRoot /var/www/%2/production/html/%1 serverAlias *.com VirtualDocumentRoot /var/www/%1/production/html 

我认为应该工作

VirtualDocumentRoot:

redcrusher.com

 /var/www/redcrusher/production/html 

http://www.redcrusher.com

 /var/www/redcrusher/production/html/ 

sub.redcrusher.com

 /var/www/redcrusher/production/html/sub