apache配置多个虚拟目录站点

时间:2022-09-16 12:16:32

错误的做法

网上查了几个资料,做法如下:比如想配置两个www.web1.com  www.web2.com站点

打开httpd.conf ,然后添加:

1 <VirtualHost *:80>
2 DocumentRoot "d:/github/web1"
3 ServerName www.web1.com
4 </VirtualHost>
5 
6 <VirtualHost *:80>
7 DocumentRoot "d:/github/web2"
8 ServerName www.web2.com
9 </VirtualHost>

 

然后我试了n次,发现访问www.web2.com,打开的是www.web1.com,也就是说只有第一个虚拟站点设置生效了。然后我怀疑是不是DocumentRoot  、<Directory> 或者端口问题,于是改了多次,还是不行。

 

正确的做法

找了多篇文章,终于试验成功了,打开httpd.conf,然后添加:

NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "d:/github/web1"
ServerName www.web1.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "d:/github/web2"
ServerName www.web2.com
</VirtualHost>

重新访问www.web2.com, 正确的打开了www.web2.com内容。

这段虚拟站点的设置我建议设置在httpd.conf里面,可以将httpd.conf的 #Include conf/extra/httpd-vhosts.conf 的注释#去掉,

然后在httpd-vhosts.conf里面设置,这时惊奇的发现httpd-vhosts.conf里面有这句 NameVirtualHost *:80

 

 

真的是网上找资料很容易误入歧途,很多人写文章不亲自试验,就摘抄,结果误人子弟。

最后分享个文章里面总结了apache配置:

Apache 的 httpd.conf 详解(很实用)