IP和通配符VirtualHost冲突

时间:2018-06-12 20:44:55

标签: virtualhost

我正在尝试设置一个Apache Web服务器,它有几个WordPress Multisite安装。我的目标是让客户将其域名指向其中一个IP地址209.50.xxx.xxx,并将流量定向到WP Multisite目录。我还有其他域需要转到特定目录,无论它们的IP地址是什么。我似乎无法让IP Based和Wildcard VirtualHosts协同工作。我只能得到一个或另一个。在下面的当前设置中,我可以在指向209.50.xxx.xxx的任何域上获得流量以转到正确的目录,但是app.example.com和www.example.com只会收到错误“ERR_TOO_MANY_REDIRECTS”。

## All Traffic to IP: 209.50.xxx.xxx on Port 80 (Catch All) ##
<VirtualHost 209.50.xxx.xxx:80>
        DocumentRoot /var/www/example/site/public
</VirtualHost>

## All Traffic to IP 209.50.xxx.xxx on Port 80 with Domain app.example.com  ##
<VirtualHost 209.50.xxx.xxx:80>
        ServerName app.example.com
        DocumentRoot /var/www/example/app/public
</VirtualHost>

## All Traffic to any IP on Port 80 with Domain www.example.com or example.com ##
<VirtualHost *:80>
        ServerName www.example.com
        ServerAlias example.com
        DocumentRoot /var/www/example/main/public
</VirtualHost>

## All Traffic to any IP on Port 80 with Domain www.other-example.com or other-example.com ##
<VirtualHost *:80>
        ServerName www.other-example.com
        ServerAlias other-example.com
        DocumentRoot /var/www/other-example/main/public
</VirtualHost>

我尝试使用当前虚拟主机catchall的不同顺序翻转到最后,结果相同。

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

我设置了一个带有2个IP地址的虚拟机,以便我可以仔细测试不同的虚拟主机配置,我相信我有解决方案。似乎如果我开始在VirtualHost行中使用IP地址(<VirtualHost 192.168.1.201:80>而不是<VirtualHost *:80>),那么我需要为每个VirtualHost块执行此操作。然后对于每个IP的“Catch-All”块,我首先将其保留在文件的顶部(顺序很重要。)