1. 程式人生 > >apache 2.2 和 2.4 訪問控制區別 (require 替代 deny)

apache 2.2 和 2.4 訪問控制區別 (require 替代 deny)

、訪問控制

在Apache2.2版本中,訪問控制是基於客戶端的主機名、IP地址以及客戶端請求中的其他特徵,使用Order(排序), Allow(允許), Deny(拒絕),Satisfy(滿足)指令來實現。

在Apache2.4版本中,使用mod_authz_host這個新的模組,來實現訪問控制,其他授權檢查也以同樣的方式來完成。舊的訪問控制語句應當被新的授權認證機制所取代,即便Apache已經提供了mod_access_compat這一新模組來相容舊語句。

這裡有一些例項,用新方法取代舊語句實現相同的訪問控制

例項1:所有請求都被拒絕

Apache2.2 配置:

複製程式碼程式碼如下:
Order deny,allow #排序,先拒絕後允許
Deny from all #拒絕所有

Apache2.4 配置:
複製程式碼程式碼如下:
Require all denied #拒絕所有

例項2:所有請求都被允許

Apache2.2 配置:

複製程式碼程式碼如下:
Order allow,deny #排序,先允許後拒絕
Allow from all #允許所有

Apache2.4 配置:

複製程式碼程式碼如下:
Require all granted #拒絕所有

例項3:example.org所有請求都被允許,其他拒絕

Apache2.2 配置:

複製程式碼程式碼如下:
Order Deny,Allow #排序,先拒絕後允許
Deny from all #拒絕所有
Allow from example.org #允許example.org

Apache2.4 配置:

複製程式碼程式碼如下:
Require host example.org #拒絕所有

二、Apache Require 指令

瞭解更多require指令用法:《Apache Module mod_authz_core》

附:常見訪問控制指令

複製程式碼程式碼如下:
Require all granted #允許所有
Require all denied #拒絕所有
Require env env-var [env-var] ... #允許,匹配環境變數中任意一個
Require method http-method [http-method] ... #允許,特定的HTTP方法
Require expr expression #允許,表示式為true
Require user userid [ userid ] ... #允許,特定使用者
Require group group-name [group-name] ... #允許,特定使用者組
Require valid-user # #允許,有效使用者
Require ip 10 172.20 192.168.2 #允許 特定IP