首先xampp在httpd.conf裏面配置禁止遍歷整個文件系統,對文件系統的默認訪問被禁止,保護服務器文件。原來配置如下:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
但是如果要讓虛擬主機能被訪問,有兩個解決辦法:一個是在全局裏將Deny from all改成Allow from all ,但是有沒發起到保護文件的作用;另一個辦法是在虛擬主機裏面加代碼,如下:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot D:projectseachbrand.com
ServerName www.eachbrand.com
##能通過多個域名訪問
#ServerAlias eachbrand.com *.eachbrand.com
ErrorLog logs/www.eachbrand.com-error_log
CustomLog logs/www.eachbrand.com-access_log common
<Directory />
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
基於域名的虛擬主機規則
1.必須指定服務器IP地址(和可能的端口)來使主機接受請求,這個可以用 NameVirtualHost指令來進行配置。如果服務器上所有的IP地址都會用到,你可以用"*"作爲NameVirtualHost的參數。如果你 打算使用多端口(如運行SSL)你必須在參數中指定一個端口號,比如"*:80"。
2.爲每個虛擬主機建立
<VirtualHost>
段
<VirtualHost>
的參數與NameVirtualHost的參數必須是一樣的(比如說,一個IP地址或"*"代表的所有地址)。在每個VirtualHost段中,至少 要有一個ServerName指令來指定伺服哪個主機和一個DocumentRoot指令來說明這個主機的內容位於文件系統的什麼地方。
3.取消中心主機, 如果你想在現有的web服務器上增加虛擬主機,你必須也爲現存的主機建造一個
<VirtualHost>
定義塊。這個虛擬主機中ServerName和DocumentRoot所包含的內容應該與全局的ServerName和DocumentRoot保持一致。還要把這個虛擬主機放在配置文件的最前面,來讓它扮演默認主機的角色。
示範代碼:
NameVirtualHost *:80
## for mainhost
<VirtualHost *:80>
ServerName localhost:80
DocumentRoot "/xampp/htdocs"
</VirtualHost>
## for virtualhost
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot D:projectskakapo.cn
ServerName www.kakapo.cn
##能通過多個域名訪問
#ServerAlias kakapo.cn *.kakapo.cn
ErrorLog logs/www.kakapo.cn-error_log
CustomLog logs/www.kakapo.cn-access_log common
</VirtualHost>