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

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

Apache模塊 mod_authz_host

說明提供基于主機(jī)名、IP地址、請求特征的訪問控制
狀態(tài)基本(B)
模塊名authz_host_module
源文件mod_authz_host.c
兼容性僅在 Apache 2.1 及以后的版本中可用

概述

mod_authz_host提供的指令用在<Directory>, <Files>, <Location>段中,也用于.htaccess文件中控制對服務(wù)器特定部分的訪問。只要能在環(huán)境變量中捕獲到主機(jī)名、IP地址或其他的客戶端請求特征,就可以基于這些特征對訪問進(jìn)行控制。AllowDeny指令用于指出允許哪些客戶及不允許哪些客戶訪問服務(wù)器,而Order指令設(shè)置默認(rèn)的訪問狀態(tài)并配置AllowDeny指令怎樣相互作用。

基于主機(jī)的訪問控制和基于口令的身份驗(yàn)證兩套機(jī)制可以同時(shí)實(shí)現(xiàn)。在這種情況下,Satisfy指令用來決定兩套機(jī)制如何相互作用。

一般來說,訪問控制指令適用于所有的訪問方法(GET, PUT, POST等)。在多數(shù)情況下這是一個(gè)被期望的特性。但是,只限制某些方法而對其他方法不加限制也是可能的:通過把指令放到一個(gè)<Limit>段中即可。

top

Allow 指令

說明控制哪些主機(jī)能夠訪問服務(wù)器的該區(qū)域
語法 Allow from all|host|env=env-variable [host|env=env-variable] ...
作用域directory, .htaccess
覆蓋項(xiàng)Limit
狀態(tài)基本(B)
模塊mod_authz_host

Allow指令控制哪些主機(jī)可以訪問服務(wù)器的該區(qū)域?梢愿鶕(jù)主機(jī)名、IP地址、 IP地址范圍或其他環(huán)境變量中捕獲的客戶端請求特性進(jìn)行控制。

這個(gè)指令的第一個(gè)參數(shù)總是"from",隨后的參數(shù)可以有三種不同形式:如果指定"Allow from all",則允許所有主機(jī)訪問,按照下述DenyOrder指令的配置。若要只允許特定的主機(jī)或主機(jī)群訪問服務(wù)器,host可以用下面任何一種格式來指定:

一個(gè)(部分)域名

示例:

Allow from apache.org
Allow from .net example.edu

主機(jī)名與給定字符串匹配或者以給定字符串結(jié)尾的主機(jī)允許訪問。只有完整的名字組成部分才被匹配,因此上述例子將匹配foo.apache.org但不能匹配fooapache.org 。這樣的配置將導(dǎo)致Apache不管HostnameLookups指令是如何設(shè)置的,對一個(gè)對客戶IP地址都要執(zhí)行兩次DNS查詢:一次正查詢保證IP沒有偽造,一次反查詢保證主機(jī)名沒有偽造。只有兩次查詢的結(jié)果都吻合,并且主機(jī)名能夠被匹配,訪問才被允許。

完整的IP地址

示例:

Allow from 10.1.2.3
Allow from 192.168.1.104 192.168.1.205

允許擁有這些IP地址的主機(jī)進(jìn)行訪問。

部分IP地址

示例:

Allow from 10.1
Allow from 10 172.20 192.168.2

IP地址的開始1到3個(gè)字節(jié),用于子網(wǎng)限制。

網(wǎng)絡(luò)/掩碼對

示例:

Allow from 10.1.0.0/255.255.0.0

一個(gè)網(wǎng)絡(luò)"a.b.c.d"和一個(gè)掩碼"w.x.y.z",用于更精確的子網(wǎng)限制。

網(wǎng)絡(luò)/nnn無類別域間路由規(guī)格(CIDR specification)

示例:

Allow from 10.1.0.0/16

同前一種情況相似,除了掩碼由nnn個(gè)高位字節(jié)構(gòu)成。

注意以上例子中的后三個(gè)匹配完全相同的一組主機(jī)。

IPv6地址和IPv6子網(wǎng)可以像下面這樣指定:

Allow from 2001:db8::a00:20ff:fea7:ccea
Allow from 2001:db8::a00:20ff:fea7:ccea/10

Allow指令的第三種參數(shù)格式允許對服務(wù)器的訪問由環(huán)境變量的一個(gè)擴(kuò)展指定。指定"Allow from env=env-variable"時(shí),如果環(huán)境變量env-variable存在則訪問被允許。使用由mod_setenvif提供的指令,服務(wù)器用一種基于客戶端請求的彈性方式提供了設(shè)置環(huán)境變量的能力。因此,這條指令可以用于允許基于像User-Agent(瀏覽器類型)、Referer或其他HTTP請求頭字段的訪問。

示例:

SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
<Directory /docroot>
Order Deny,Allow
Deny from all
Allow from env=let_me_in
</Directory>

這種情況下,發(fā)送以KnockKnock/2.0開頭的用戶代理標(biāo)示的瀏覽器將被允許訪問,而所有其他瀏覽器將被禁止訪問。

top

Deny 指令

說明控制哪些主機(jī)被禁止訪問服務(wù)器
語法 Deny from all|host|env=env-variable [host|env=env-variable] ...
作用域directory, .htaccess
覆蓋項(xiàng)Limit
狀態(tài)基本(B)
模塊mod_authz_host

這條指令允許基于主機(jī)名、IP地址或者環(huán)境變量限制對服務(wù)器的訪問。Deny指令的參數(shù)設(shè)置和Allow指令完全相同。

top

Order 指令

說明控制默認(rèn)的訪問狀態(tài)與AllowDeny指令生效的順序
語法 Order ordering
默認(rèn)值Order Deny,Allow
作用域directory, .htaccess
覆蓋項(xiàng)Limit
狀態(tài)基本(B)
模塊mod_authz_host

Order指令控制默認(rèn)的訪問狀態(tài)與AllowDeny指令生效的順序。Ordering取值范圍是以下幾種范例之一:

Deny,Allow
Deny指令在Allow指令之前被評估。默認(rèn)允許所有訪問。任何不匹配Deny指令或者匹配Allow指令的客戶都被允許訪問。
Allow,Deny
Allow指令在Deny指令之前被評估。默認(rèn)拒絕所有訪問。任何不匹配Allow指令或者匹配Deny指令的客戶都將被禁止訪問。
Mutual-failure
只有出現(xiàn)在Allow列表并且不出現(xiàn)在Deny列表中的主機(jī)才被允許訪問。這種順序與"Order Allow,Deny"具有同樣效果,不贊成使用。

關(guān)鍵字只能用逗號(hào)分隔;它們之間不能有空格。注意在所有情況下每個(gè)AllowDeny指令語句都將被評估。

在下面的例子中,apache.org域中所有主機(jī)都允許訪問,而其他任何主機(jī)的訪問都將被拒絕。

Order Deny,Allow
Deny from all
Allow from apache.org

下面例子中,apache.org域中所有主機(jī),除了foo.apache.org子域包含的主機(jī)被拒絕以外,其他都允許訪問。而所有不在apache.org域中的主機(jī)都不允許訪問,因?yàn)槟J(rèn)狀態(tài)是拒絕對服務(wù)器的訪問。

Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org

另一方面,如果上個(gè)例子中的Order指令改變?yōu)?Deny,Allow",將允許所有主機(jī)的訪問。這是因?yàn),不管配置文件中指令的?shí)際順序如何,"Allow from apache.org"指令會(huì)最后被評估到并覆蓋之前的"Deny from foo.apache.org"。所有不在apache.org域中的主機(jī)也允許訪問是因?yàn)槟J(rèn)狀態(tài)被改變到了允許。

即使沒有伴隨AllowDeny指令,一個(gè)Order指令的存在也會(huì)影響到服務(wù)器上某一個(gè)部分的訪問,這是由于它對默認(rèn)訪問狀態(tài)的影響。例如:

<Directory /www>
Order Allow,Deny
</Directory>

這樣將會(huì)禁止所有對/www目錄的訪問,因?yàn)槟J(rèn)狀態(tài)將被設(shè)置為拒絕

Order指令只在服務(wù)器配置的每個(gè)段內(nèi)部控制訪問指令的處理。這暗示著,例如,一個(gè)在<Location>段中出現(xiàn)的AllowDeny指令總是將會(huì)在一個(gè)<Directory>段或者.htaccess文件中出現(xiàn)的AllowDeny指令之后被評估,而不管Order指令如何設(shè)置。要了解配置段落合并的詳細(xì)信息,參見配置段文檔。