基于CNAME的Apache虚拟主机

我可以在apache上创build一个虚拟主机来响应一个cname请求吗? 例如:

example.com的logging是1.2.3.4
foo.example.com是example.com的CNAME

在http.conf中:

<VirtualHost *:80> ServerName example.com DocumentRoot /var/www </VirtualHost> <VirtualHost foo.example.com> ServerName foo.example.com DocumentRoot /foo/www </VirtualHost> 

Apache开始罚款和消化我的conf,但是当我访问foo.example.com我得到/ var / www中的内容,而不是/ foo / www中的内容。 我想我在这里错了。

下面的代码片段应该可以工作(没有任何警告):

 NameVirtualHost *:80 <VirtualHost *:80> ServerName example.com DocumentRoot /var/www </VirtualHost> <VirtualHost *:80> ServerName foo.example.com DocumentRoot /foo/wwww </VirtualHost> 

请确保您阅读了基于名称的虚拟主机支持文档,以了解为什么它不起作用。

您是否尝试在foo.example.com虚拟主机上添加端口号?

即:

 <VirtualHost foo.example.com:80> ServerName foo.example.com DocumentRoot /foo/www </VirtualHost> 

我得到了这样的工作:

 NameVirtualHost _default_:80 <VirtualHost _default_:80> ServerName example.com DocumentRoot /var/www </VirtualHost> <VirtualHost _default_:80> ServerName foo.example.com DocumentRoot /foo/wwww </VirtualHost> 

虽然这给了一个警告在http开始:

 [warn] NameVirtualHost _default_:80 has no VirtualHosts