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/ 目录。