在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:splaybow.com所有请求都被允许,其他拒绝
Apache2.2 配置:
Order Deny,Allow #排序,先拒绝后允许
Deny from all #拒绝所有
Allow from splaybow.com #允许splaybow.com
Apache2.4 配置:
Require host splaybow.com #允许splaybow.com
二、Apache Require 指令
附:常见访问控制指令
Require all granted #允许所有来源访问
Require all denied #拒绝所有来源访问
Require expr expression #允许表达式为true时访问
Require ip 10 172.20 192.168.2 #允许 特定IP段访问,多个段之前用空格隔开。每个段使用开头几项表示
Require host splaybow.com #只允许来自域名splaybow.com的主机访问