具有通配符域名子域的虚拟主机。*

我正在尝试在Apache上设置对某些子域名作出反应的虚拟主机,而不是任何域名

subxdomain。*

所以任何指向机器和子域的域都可以工作

ServerName web。* …

所以web.blahblah.com以及web.mooose.com将工作(* .blahblah.com和* .mooose.comparsing到同一台机器)

folloging片段应该做的伎俩:

NameVirtualHost *:80 <VirtualHost *:80> ServerName subdomain ServerAlias subdomain.* # other directives for the particular vhost </VirtualHost> 

有关详细信息,请参阅ServerAlias和基于名称的虚拟主机支持文档。

我不确定你是否可以使用海量虚拟主机(apache2)。 我从来没有做过这样的事情。 http://httpd.apache.org/docs/2.0/vhosts/mass.html

你想用这个解决scheme达到什么目的?

这应该不难。

默认情况下,Apache会响应您configuration的任何端口上的所有stream量。

只需将其设置为侦听地址分配给的端口80即可。

为每个指定的站点设置一个具有不同目录和主机名的Vhost,这些应优先于通配符。

这将在所有命名的网站去到他们需要的地方,服务器收到的任何东西都会得到默认页面。

为了确保,我会把httpd.conf中的通配符放在通配符的上面

您不能使用通配符与ServerName。

你可以做的是使用默认的VirtualHost作为一个全面的:

 <VirtualHost *:80> # NEVER add a ServerName in this VirtualHost (...) </VirtualHost> 

只要没有web.blahblah.com的虚拟主机以及web.mooose.com,他们都将在默认的VirtualHost下工作。

您也可以使用重写将请求redirect到不同的URL:

  RewriteCond %{HTTP_HOST} ^web.moose.com$ RewriteRule ^/(.*)$ http://other.moose.com/web/$1 [R,L] 

希望有所帮助。

干杯