Apache 配置虚拟主机的方式很多,种类也很多,主要分为两类:
基于名称的虚拟主机 (每个 IP 多个站点)
基于 IP 的虚拟主机 (每个 IP 一个站点)
基于名称的虚拟主机: www.2cto.com
在windows下 Apache 的配置文件 conf/httpd.conf 中加载 虚拟主机配置文件 /extra/httpd-vhosts.conf
找到 Include "conf/extra/httpd-vhosts.conf" 取消注释即可。
现在,到httpd-vhosts.conf中,开始配置我们的虚拟主机。
假设 我们有两个不同的站点在同一apache服务器上,www.a.com 和 www.b.com 都指向 同一ip :***.***.***
我们希望 www.a.com访问网站 a,目录为 /htdocs/a
www.b.com访问网站 b,目录为 /htdocs/b
httpd-vhosts.conf 代码如下:
01
NameVirtualHost *:80 //指定所有的ip 端口访问
02
<VirtualHost *:80>
03
ServerName www.a.com
04
DocumentRoot "X:/htdocs/a"
05 www.2cto.com
<Directory "X:/htdocs/a"> //如果不添加,这会出现 AccessForbidden
06
Options Indexes FollowSymLinks
07
AllowOverride All //默认为 AllowOverride None 此处修改为 All 目的是可以访问 .htaccess
08
Order allow,deny
09
Allow from all
10
</Directory>
11
</VirtualHost>
12
13
<VirtualHost *:80>
14
ServerName www.b.com
15
DocumentRoot "X:/htdocs/b"
16
<Directory "X:/htdocs/b">
17
Options Indexes FollowSymLinks
18
AllowOverride None
19 www.2cto.com
Order allow,deny
20
Allow from all
21
</Directory>
22
</VirtualHost>
至此,你的配置应该已经结束了。但是先别急着重启服务器,先使用httpd -S 命令来看看apache是如何解析的吧。如果修改了httpd.conf 文件,请使用 httpd -t命令。
如果你看到
1
default server www.a.com(F:/apache/conf/extra/httpd-vhosts.conf:46)
2
3
port 80 namevhost www.a.com(F:/apache/conf/extra/httpd-vhosts.conf:46
4
5
port 80 namevhost www.b.com (F:/apache/conf/extra/httpd-vhosts.conf:57
6 www.2cto.com
Syntax OK
那么,去重启服务器后,访问 www.a.com 吧。他会解析 a目录下的网站了。
如果你没有域名而只是想在本地测试下效果的话,很简单,在你的hosts文件中加上
1
127.0.0.1 www.a.com
2
127.0.0.1 www.b.com
这样就可以了。
基于Ip的大家可以试试把* 修改为ip看看。