最簡單的方法:
一、打開httpd.conf,找到:
#Include conf/extra/httpd-vhosts.conf
取消這一行的註釋,即刪除前面的#
二、打開 conf/extra/httpd-vhosts.conf
比如要添加一個 uri 爲 local.weitwo.com的virtual host,映射到本機的80端口,那麼修改或者複製example中的<VirtualHost></VirtualHost>節點,
修改其中的ServerName爲 local.weitwo.com 即可
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "D:/Project/PHP/WeiTwoWebsite"
ServerName local.weitwo.com
ErrorLog "logs/local.weitwo.com.log"
CustomLog "logs/t.weitwo.com-access.log" common
</VirtualHost>
然後再修改本機的host文件, 位於system32/driver/etc下,增加: 127.0.0.1 local.weitwo.com
此時即可在本機訪問local.weitwo.com了
二、爲VirtualHost添加 url rewrite
1.在httpd.conf中,找到如下行
#LoadModule rewrite_module modules/mod_rewrite.so
取消其註釋,即刪除前面的“#”
2.在VirtualHost中,添加Directory節點,指定AllowOverride爲All,如果你想通過.htaccess中寫rewrite規則,就不需要再做什麼了,如果你想直接在conf文件中寫rewrite rule,直接在Directory節點中寫rewrite規則即可。
最終的VirtualHost像下面這樣:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "D:/Project/PHP/WeiTwoWebsite"
ServerName local.weitwo.com
ErrorLog "logs/local.weitwo.com.log"
CustomLog "logs/t.weitwo.com-access.log" common
<Directory "D:/Project/PHP/WeiTwoWebsite">
#Options Indexes FollowSymLinks
AllowOverride All
#RewriteEngine on
#RewriteRule ^c.php$ a.html
</Directory>
</VirtualHost>
或者直接在httpd.conf文件末尾添加以下內容
NameVirtualHost *:80
<VirtualHost *:80>
ServerAlias abc.sh.cn *.abc.sh.cn
DirectoryIndex index.html
DocumentRoot /var/www/abc/
ServerName abc.sh.cn
ErrorLog logs/abc.sh.cn-error_log
</VirtualHost>
<VirtualHost *:80>
ServerAlias cba.cn *.cba.cn
DirectoryIndex index.html index.php
DocumentRoot /var/www/cba/
ServerName cba.cn
ErrorLog logs/cba.cn-error_log
</VirtualHost>
這樣就可以使用兩個域名解析到同一IP上卻得到不同頁面。
如果要禁止用戶直接用IP進行訪問,只要在
NameVirtualHost *:80
這句之後插入以下內容:
<VirtualHost *:80>
ServerName YourIpAddress
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>