VirtualHost 可以讓多個網站在一台主機上運行, 一般上每個 VirtualHost 都需要加入一段 “ “, 然後設定 ServerName, ServerAlias 及 DocumentRoot, 例如有兩個網址, 分別是 www.mydomain.com 及 blog.mydomain.com, 在 httpd.conf 部份要加入類似這樣的設定:
|
1 2 3 4 5 6 7 8 9 |
NameVirtualHost *:80 <VirtualHost *:80> ServerName www.mydomain.com DocumentRoot /var/www/www.mydomain.com </VirtualHost> <VirtualHost *:80> ServerName blog.mydomain.com DocumentRoot /var/www/blog.mydomain.com </VirtualHost> |
另一種方法是動態設定 VirtualHost, 以上面的例子, 可以用一段 設定。
首先開啟 httpd.conf:
# vi /etc/httpd/conf/httpd.conf
將上面兩個 VirtualHost 改成這樣:
|
1 2 3 4 5 6 |
NameVirtualHost *:80 <VirtualHost *:80> UseCanonicalName Off ServerName *.mydomain.com VirtualDocumentRoot /var/www/%0 </VirtualHost> |
上面的 設定可以對應所有 mydomain.com 下的副域名, 並用了 VirtualDocumentRoot 取代了原來的 DocumentRoot, 在後面加上 “/var/www/%0”, “%0” 代表客戶端請求的網址, 例如當訪客存取 www.mydomain.com 時, 會自動對應到 /var/www/www.mydomain.com/ 目錄; 存取 blog.mydomain.com 時, 會自動對應到 /var/www/blog.mydomain.com/ 目錄。