Apache2通配符+静态子域

时间:2015-07-24 22:52:14

标签: apache virtualhost

我希望将所有子域的流量定向到一个目录,仅针对一个特定子域,再针对另一个目录。

<VirtualHost beta.home.lan:80>
    ServerName beta.home.lan
    DocumentRoot /var/www/beta
</VirtualHost>

<VirtualHost *:80>
    ServerName beta.home.lan
    DocumentRoot /var/www/others
</VirtualHost>

它接第一个虚拟服务捕获所有流量。 我做错了什么? 谢谢!

1 个答案:

答案 0 :(得分:1)

http://httpd.apache.org/docs/2.2/en/mod/core.html#servername

  

“如果您使用的是基于名称的虚拟主机,则部分内的ServerName指定必须在请求的Host:标头中显示哪个主机名才能匹配此虚拟主机。”

如果您请求beta.home.lan以外的任何内容,则两个VirtualHost中的ServerNames都不匹配 - 并且适用于此情况,

http://httpd.apache.org/docs/2.2/en/vhosts/name-based.html#using

  

“如果找不到匹配的虚拟主机,则将使用与IP地址匹配的第一个列出的虚拟主机。”

在第二个VirtualHost中使用ServerAlias

<VirtualHost *:80>
    ServerName beta.home.lan
    DocumentRoot /var/www/beta
</VirtualHost>

<VirtualHost *:80>
    ServerAlias *.home.lan
    DocumentRoot /var/www/others
</VirtualHost>