实现基于名字的动态虚拟主机指令:
VirtualDocumentRoot
指定模块如何从URL请求那里为动态虚拟主机构造DocumentRoot路径。
VirtualScriptAlias
和ScriptAlias一样,从URL请求那里构造一个包含CGI脚本的目录路径
%N
服务器的第N部分,如果服务器的全名是 vhost1.sohu.com,那么%1解析成vhost1,%2 解析成sohu,以此
类推。
%N+
服务器名称的地N部分和其后所有其余部分。如果服务器全名为vhost1.sohu.com,那么%2+解析为
sohu.com。
%-N
字符串倒数第N部分。如果服务器全名为vhost1.sohu.com,那么%-1解析成com。%-2解析成sohu
%p
动态虚拟主机的TCP端口号
还可以从服务器名字中抽取的每一部分可以使用分类符%N.M继续对子部分进一步划分,其中N是主部分,M是子部分。例如:
%1=vhost1
%2=sohu
%3=com
可以划分子部分:
%1.1=v
%1.2=h
%1.3=o
%2.1=s
%2.2=o
例如:
在httpd.conf文件中:
UseCanonicalName off
VirtualDocumentRoot /home/httpd/%1/%p
要实现输入http://www.263.net:443
需要在/home/httpd目录中建立www(%1)/443
然后在/home/httpd/%1/443/目录中建立网页文件, 在DNS中设置解析访问即可。
例2:
将例子一中的VirtualDocumentRoot定义的内容删除。
然后再添加:
VirtualHostDocumentRoot /home/httpd/%1/%2
要求:
实现动态虚拟主机:
www.abc.com
www.xyz.com
#mkdir /home/httpd/www
#mkdir /home/httpd/www/abc
#mkdir /home/httpd/www/xyz
将网页文件放入/home/httpd/www/abc和/home/httpd/www/xyz即可在DNS中设置解析