本文翻譯自官方文檔:《Upgrading to 2.4 from 2.2》
一、存取控制
在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