Apache模块 mod_vhost_alias
| 说明 | 提供大批量虚拟主机的动态配置支持 |
|---|---|
| 状态 | 扩展(E) |
| 模块名 | vhost_alias_module |
| 源文件 | mod_vhost_alias.c |
概述
本模块通过将HTTP请求中的IP地址和/或"Host:"头内容转换为所要提供服务的文件路径名来创建动态的虚拟主机配置。这样的做法,使得应用配置大量相似的虚拟主机变得更为容易。
注意
如果使用mod_alias或mod_userdir来将URI转换为文件名,那么mod_vhost_alias的设定将被覆盖。例如,下面的配置将始终把/cgi-bin/script.pl 映射为/usr/local/apache2/cgi-bin/script.pl 。
ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/
VirtualScriptAlias /never/found/%0/cgi-bin/

UseCanonicalName指令以了解决策方法)或者是"点数字"格式的虚拟主机IP地址。替换操作由printf格式修饰符控制,该修饰符有以下几种格式:
%% |
插入一个百分号(%) |
%p |
插入虚拟主机的端口号 |
%N.M |
插入名称(或者名称的一部分) |
N和M被用来指定name中的子字符串。N从name中用小数点分隔的某部分中选取,而M是从N选中的字符串中选取部分字符。M是可选的且默认为"0";小数点当且仅当M存在时才必须书写。替换操作如下:
0 |
整个name |
1 |
第一部分 |
2 |
第二部分 |
-1 |
最后一部分 |
-2 |
倒数第二部分 |
2+ |
从第二部分开始到最后的所有部分 |
-2+ |
倒数第二部分以及之前的各部分 |
1+和-1+
|
等同于0
|
如果N或M大于部分的个数,则简单的用下划线来替换。

LogFormat指令的%V和%A在和本模块的协同中起了一定作用。

说明
对于给定的基于名称的虚拟主机动态配置根文档目录
语法
VirtualDocumentRoot interpolated-directory|none
默认值
VirtualDocumentRoot none
作用域
server config, virtual host
状态
扩展(E)
模块
mod_vhost_alias
VirtualDocumentRoot interpolated-directory|noneVirtualDocumentRoot noneVirtualDocumentRoot指令使Apache可以通过虚拟主机的域名找到相应的文档。扩展interpolated-directory所得到的目录将会作为虚拟主机的根目录,这和DocumentRoot指令的参数是一样的。如果interpolated-directory为none ,那么VirtualDocumentRoot将被关闭。该指令不能和VirtualDocumentRootIP指令在同一作用域中使用。

说明
对于给定的基于IP的虚拟主机动态配置根文档目录
语法
VirtualDocumentRootIP interpolated-directory|none
默认值
VirtualDocumentRootIP none
作用域
server config, virtual host
状态
扩展(E)
模块
mod_vhost_alias
VirtualDocumentRootIP interpolated-directory|noneVirtualDocumentRootIP noneVirtualDocumentRootIP与VirtualDocumentRoot相似,只是替换操作时用的不是虚拟主机名称,而是IP地址。

说明
对于给定的基于名称的虚拟主机动态配置CGI目录
语法
VirtualScriptAlias interpolated-directory|none
默认值
VirtualScriptAlias none
作用域
server config, virtual host
状态
扩展(E)
模块
mod_vhost_alias
VirtualScriptAlias interpolated-directory|noneVirtualScriptAlias noneVirtualScriptAlias指令使Apache确定何处存放的是CGI脚本,这和VirtualDocumentRoot的做法是一样的。它匹配请求中的以/cgi-bin/开始的URI,更像"ScriptAlias /cgi-bin/"的作用。
