为什么创buildApache通配符子域和IP创build无限redirect?

我有Apacheconfiguration几个IP地址:

Listen 111.111.111.111:80 Listen 111.111.111.111:443 Listen 222.222.222.222:80 Listen 222.222.222.222:443 Listen 333.333.333.333:80 Listen 333.333.333.333:443 

(IP是假的)

我有几个VirtualHosts,其中之一是通配符子域。

 <VirtualHost *:80> ServerName *.example1.com DocumentRoot /var/www/vhosts/example1-wc/docs </VirtualHost> <VirtualHost *:80> ServerName www.example1.com DocumentRoot /var/www/vhosts/example1/docs </VirtualHost> <VirtualHost *:80> ServerName www.example2.com DocumentRoot /var/www/vhosts/example2/docs </VirtualHost> 

这工作正常。 请求www.example1.com在example1 docroot下提供,example.example1.com请求在example1-wc docroot下提供,www.example2.com请求为example2 docroot。

我可以将www.example2.com更改为使用特定的IP,但是如果将通配符vhost * .example1.com更改为特定的IP:

 <VirtualHost 111.111.111.111:80> ServerName *.example1.com DocumentRoot /var/www/vhosts/example1-wc/docs </VirtualHost> 

然后请求www.example1.com创build一个无限的redirect循环。 不pipe我是否使用:

 <VirtualHost 222.222.222.222:80> ServerName www.example1.com DocumentRoot /var/www/vhosts/example1/docs </VirtualHost> 

要么

 <VirtualHost *:80> ServerName www.example1.com DocumentRoot /var/www/vhosts/example1/docs </VirtualHost> 

为什么会发生这种情况,我怎样才能让每个虚拟主机在自己的IP上?

我不确定这是否是问题的根源,但是您应该有指示

 NameVirtualHost 111.111.111.111:80 NameVirtualHost 222.222.222.222:80 NameVirtualHost 333.333.333.333:80 

所以完整的configuration会有这些指令:

 Listen 111.111.111.111:80 NameVirtualHost 111.111.111.111:80 <VirtualHost 111.111.111.111:80> ServerName *.example1.com DocumentRoot /var/www/vhosts/example1-wc/docs </VirtualHost> Listen 222.222.222.222:80 NameVirtualHost 222.222.222.222:80 <VirtualHost 222.222.222.222:80> ServerName www.example1.com DocumentRoot /var/www/vhosts/example1/docs </VirtualHost> Listen 333.333.333.333:80 NameVirtualHost 333.333.333.333:80 <VirtualHost 333.333.333.333:80> ServerName www.example2.com DocumentRoot /var/www/vhosts/example2/docs </VirtualHost> 

但是这不应该出现在任何地方:

 NameVirtualHost *:80 

如果您有兴趣,请阅读以下内容: http : //httpd.apache.org/docs/2.2/vhosts/details.html (祝您好运!

只是一个疯狂的猜测,但你有没有尝试把www.example1.com定义的通配符子域的定义?