前提条件:
已在域名服务提供商处或自己管理的DNS服务器上,将多个域名或A记录(如:test.com 、www.test.com 、bbs.test.com ,blog.test.com)指向同一个公网IP(如:166.166.166.166)
此例中,Apache中涉及到的相关选项说明:
NameVirtualHost * (设定虚拟主机的ip)
<VirtualHost *>
ServerAdmin admin@domain.com (设定虚拟主机的管理者信箱,不用和预设的网站管理者相同)
DocumentRoot /yourdir (指定虚拟主机的网站主目录)
ServerName domain.com (设定虚拟主机的名称,指定设定虚拟主机的UR)
ServerAlias www.domain.com (设定虚拟主机的別名,例: WWW )
ErrorLog logs/domain.com_error_log (虚拟主机发生错误时要记录在哪个目录,可不设.)
</VirtualHost>
一、用于设置虚拟主机接收多个二级域名
一个虚拟主机常常会接收多个二级域名解析,比如:www.test.com, bbs.test.com,blog.test.com,对于这种情况,可以在用ServerAlias轻松做到
在Apache中的配置:
NameVirtualHost 166.166.166.166
<VirtualHost 166.166.166.166>
ServerAdmin admin@test.com
DocumentRoot /yourdir
ServerName test.com
ServerAlias www.test.com blog.test.com
ServerAlias bbs.test.com
ErrorLog logs/test.com_error_log
</Virtualhost>
二、 用于接收泛域名解析
一个虚拟主机是可以接收泛域名解析的,也是通过SeverAlias选项设置,通过设置该选项不仅可以接收二级泛域名解析,也可以接收三级、四级泛域名解析,具体设置如下:
<VirtualHost 166.166.166.166>
ServerName "test.com" 默认域名
ServerAlias *.test.com 用*表示泛域名
如果要接收三级泛域名解析,可以写成这样:*.my.test.com
DocumentRoot "D:\wwwroot\test.com"
<Directory "D:\wwwroot\test.com">
Options Indexes FollowSymLinks
AllowOverride all
</Directory>
</VirtualHost>