先附上官方的examples:http://httpd.apache.org/docs/2.0/vhosts/examples.html
首先找到Apache的配置文件httpd.conf
确认有下面一行:
# Virtual hostsInclude "conf/extra/httpd-vhosts.conf"
如果没有,请在配置文件末尾添加。然后找到httpd-vhosts.conf添加配置。
复制里面的一个example,进行修改,这里以example.com为例。
## Use name-based virtual hosting.
#
NameVirtualHost *:80
ServerAdmin [email protected]
DocumentRoot "D:/xampp/htdocs/example"
ServerName www.example.com
ErrorLog "logs/www.example.com-error.log"
NameViretualHost是启用基于名字的虚拟主机,若不配置该选项,则只有第一个VirtualHost的配置会生效。
DocumentRoot指向网站的根目录即可,需要注意的是,localhost是指向默认的DocumentRoot,但添加过vhost配置以后,这个配置会失效,所以我们也需要为localhost配置一个虚拟主机,方便本地的调试。继续添加下面的配置:
ServerAdmin [email protected]DocumentRoot "D:/xampp/htdocs"
ServerName localhost
ErrorLog "logs/localhost-error.log"
若有多个站点,多个IP,可以参照下面的配置:
Listen 80# This is the "main" server running on 172.20.30.40
ServerName server.domain.com
DocumentRoot /www/mainserver
# This is the other address
NameVirtualHost 172.20.30.50
DocumentRoot /www/example1
ServerName www.example1.com
# Other directives here ...
DocumentRoot /www/example2
ServerName www.example2.org
# Other directives here ...
所有不是发送至172.20.30.50的请求都会转发到main server;发送到172.20.30.50的请求,如果HostName未知或者在HTTP报头中没有指定HostName,那么该请求会转发至www.example1.com处理。
配置好之后,重启Apache即可让配置生效。