Apache2.4和Apache2.2访问控制配置语法对比
本文翻译自官方文档:《Upgradingto2.4from2.2》
一、访问控制
在Apache2.2版本中,访问控制是基于客户端的主机名、IP地址以及客户端请求中的其他特征,使用Order(排序),Allow(允许),Deny(拒绝),Satisfy(满足)指令来实现。
在Apache2.4版本中,使用mod_authz_host这个新的模块,来实现访问控制,其他授权检查也以同样的方式来完成。旧的访问控制语句应当被新的授权认证机制所取代,即便Apache已经提供了mod_access_compat这一新模块来兼容旧语句。
这里有一些实例,用新方法取代旧语句实现相同的访问控制
实例1:所有请求都被拒绝
Apache2.2配置:
Orderdeny,allow#排序,先拒绝后允许 Denyfromall#拒绝所有
Apache2.4配置:
Requirealldenied#拒绝所有
实例2:所有请求都被允许
Apache2.2配置:
Orderallow,deny#排序,先允许后拒绝 Allowfromall#允许所有
Apache2.4配置:
Requireallgranted#拒绝所有
实例3:example.org所有请求都被允许,其他拒绝
Apache2.2配置:
OrderDeny,Allow#排序,先拒绝后允许 Denyfromall#拒绝所有 Allowfromexample.org#允许example.org
Apache2.4配置:
Requirehostexample.org#拒绝所有
二、ApacheRequire指令
了解更多require指令用法:《ApacheModulemod_authz_core》
附:常见访问控制指令
Requireallgranted#允许所有 Requirealldenied#拒绝所有 Requireenvenv-var[env-var]...#允许,匹配环境变量中任意一个 Requiremethodhttp-method[http-method]...#允许,特定的HTTP方法 Requireexprexpression#允许,表达式为true Requireuseruserid[userid]...#允许,特定用户 Requiregroupgroup-name[group-name]...#允许,特定用户组 Requirevalid-user##允许,有效用户 Requireip10172.20192.168.2#允许特定IP