Apache配置虛擬主機,爲什麼總是第一個VirtualHost起效?
httpd.conf加入以下設置後,
訪問"www.abc.cn"、"www.abc.net"、"test.abc.cn"時,爲什麼都是第一個VirtualHost起效——即訪問的都是“E:/website/www/abc1”,怎樣解決啊!
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "E:/website/www/abc1"
ServerName www.abc.cn
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "E:/website/www/abc2"
ServerName www.abc.net
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "E:/website/www/abc3"
ServerName test.abc.cn
</VirtualHost>
1、確認一下你的對應的3個域名都是指向了這臺服務器的IP
2、將 * 替換一下
<VirtualHost www.abc.cn:80>
DocumentRoot "E:/website/www/abc1"
ServerName www.abc.cn
</VirtualHost>
<VirtualHost www.abc.net:80>
DocumentRoot "E:/website/www/abc2"
ServerName www.abc.net
</VirtualHost>
<VirtualHost test.abc.cn:80>
DocumentRoot "E:/website/www/abc3"
ServerName test.abc.cn
</VirtualHost>
abc1下的內容移到站點根目錄下
然後httpd.conf改成這樣就好了:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "E:/website/www"
ServerName www.abc.cn
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "E:/website/www/abc2"
ServerName www.abc.net
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "E:/website/www/abc3"
ServerName test.abc.cn
</VirtualHost>