欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

<-
Apache > HTTP Server > 文檔 > 版本2.2 > 模塊
   致謝 | 譯者聲明 | 本篇譯者:金步國 | 本篇譯稿最后更新:2006年1月29日 | 獲取最新版本

Apache模塊 mod_vhost_alias

說明提供大批量虛擬主機的動態(tài)配置支持
狀態(tài)擴展(E)
模塊名vhost_alias_module
源文件mod_vhost_alias.c

概述

本模塊通過將HTTP請求中的IP地址和/或"Host:"頭內(nèi)容轉(zhuǎn)換為所要提供服務的文件路徑名來創(chuàng)建動態(tài)的虛擬主機配置。這樣的做法,使得應用配置大量相似的虛擬主機變得更為容易。

注意

如果使用mod_aliasmod_userdir來將URI轉(zhuǎn)換為文件名,那么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/

top

目錄名稱的轉(zhuǎn)換

本模塊中的所有指令都用于將字符串替換為路徑名。被替換的字符串(以后稱為"name")可以是服務器名(參見UseCanonicalName指令以了解決策方法)或者是"點數(shù)字"格式的虛擬主機IP地址。替換操作由printf格式修飾符控制,該修飾符有以下幾種格式:

%%插入一個百分號(%)
%p插入虛擬主機的端口號
%N.M插入名稱(或者名稱的一部分)

NM被用來指定name中的子字符串。N從name中用小數(shù)點分隔的某部分中選取,而M是從N選中的字符串中選取部分字符。M是可選的且默認為"0";小數(shù)點當且僅當M存在時才必須書寫。替換操作如下:

0整個name
1第一部分
2第二部分
-1最后一部分
-2倒數(shù)第二部分
2+從第二部分開始到最后的所有部分
-2+倒數(shù)第二部分以及之前的各部分
1+-1+等同于0

如果NM大于部分的個數(shù),則簡單的用下劃線來替換。

top

示例

對于一個簡單的基于名稱的虛擬主機,配置文件中可能會使用下面的指令:

UseCanonicalName Off
VirtualDocumentRoot /usr/local/apache/vhosts/%0

那么對http://www.example.com/directory/file.html的請求將會返回文件/usr/local/apache/vhosts/www.example.com/directory/file.html

對于擁有大量虛擬主機的情況而言,減少vhosts目錄大小的一個好辦法就是重新組織。為此你可以使用下面的配置:

UseCanonicalName Off
VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2

那么對http://www.domain.example.com/directory/file.html的請求將會返回文件/usr/local/apache/vhosts/example.com/d/o/m/domain/directory/file.html

進一步的分割可以用name尾字符來索引(hashing),例如:

VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.-1/%2.-2/%2.-3/%2

該例返回文件/usr/local/apache/vhosts/example.com/n/i/a/domain/directory/file.html

也可以這樣使用:

VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+

該例返回文件/usr/local/apache/vhosts/example.com/d/o/m/ain/directory/file.html

對于基于IP地址的虛擬主機,可以這樣配置:

UseCanonicalName DNS
VirtualDocumentRootIP /usr/local/apache/vhosts/%1/%2/%3/%4/docs
VirtualScriptAliasIP /usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin

http://www.domain.example.com/directory/file.html的請求將會返回文件/usr/local/apache/vhosts/10/20/30/40/docs/directory/file.html ,這里假設www.domain.example.com的IP地址為10.20.30.40。對http://www.domain.example.com/cgi-bin/script.pl的請求將會執(zhí)行程序/usr/local/apache/vhosts/10/20/30/40/cgi-bin/script.pl

如果你希望在VirtualDocumentRoot指令中包含點字符(.),但這又和%指令產(chǎn)生沖突,可以這樣解決:

VirtualDocumentRoot /usr/local/apache/vhosts/%2.0.%3.0

http://www.domain.example.com/directory/file.html的請求將會返回文件/usr/local/apache/vhosts/domain.example/directory/file.html

LogFormat指令的%V%A在和本模塊的協(xié)同中起了一定作用。

top

VirtualDocumentRoot 指令

說明對于給定的基于名稱的虛擬主機動態(tài)配置根文檔目錄
語法VirtualDocumentRoot interpolated-directory|none
默認值VirtualDocumentRoot none
作用域server config, virtual host
狀態(tài)擴展(E)
模塊mod_vhost_alias

VirtualDocumentRoot指令使Apache可以通過虛擬主機的域名找到相應的文檔。擴展interpolated-directory所得到的目錄將會作為虛擬主機的根目錄,這和DocumentRoot指令的參數(shù)是一樣的。如果interpolated-directorynone ,那么VirtualDocumentRoot將被關閉。該指令不能和VirtualDocumentRootIP指令在同一作用域中使用。

top

VirtualDocumentRootIP 指令

說明對于給定的基于IP的虛擬主機動態(tài)配置根文檔目錄
語法VirtualDocumentRootIP interpolated-directory|none
默認值VirtualDocumentRootIP none
作用域server config, virtual host
狀態(tài)擴展(E)
模塊mod_vhost_alias

VirtualDocumentRootIPVirtualDocumentRoot相似,只是替換操作時用的不是虛擬主機名稱,而是IP地址。

top

VirtualScriptAlias 指令

說明對于給定的基于名稱的虛擬主機動態(tài)配置CGI目錄
語法VirtualScriptAlias interpolated-directory|none
默認值VirtualScriptAlias none
作用域server config, virtual host
狀態(tài)擴展(E)
模塊mod_vhost_alias

VirtualScriptAlias指令使Apache確定何處存放的是CGI腳本,這和VirtualDocumentRoot的做法是一樣的。它匹配請求中的以/cgi-bin/開始的URI,更像"ScriptAlias /cgi-bin/"的作用。

top

VirtualScriptAliasIP 指令

說明對于給定的基于IP的虛擬主機動態(tài)配置CGI目錄
語法VirtualScriptAliasIP interpolated-directory|none
默認值VirtualScriptAliasIP none
作用域server config, virtual host
狀態(tài)擴展(E)
模塊mod_vhost_alias

VirtualScriptAliasIPVirtualScriptAlias相似,只是替換操作使用的不是虛擬主機名稱,而是IP地址。