Apache2.2与Apache2.4实现访问控制的教程

2020年11月24日09:26:42 发表评论 1,223

在httpd配置文件中,要实现访问控制可以基于文件系统或者URL路径来进行
文件系统路径:
1、针对网站目录进行访问控制<Directory "">...</Directory>

2、针对某单一文件进行访问控制
<File "">...</File>
3、使用正则表达式对某些文件进行访问控制<FileMatch "PATTERN">...</FileMatch>

URL路径:
<Location "">...</Location>
在新的Apache2.4版本中,其访问控制的配置语法与Apache2.2不同。在Apache2.2版本中,访问控制是基于客户端的主机名、IP地址以及客户端请求中的其他特征,使用Order(排序),Allow(允许),Deny(拒绝)指令来实现,被拒绝后的用户访问页面会提示403错误。在Apache2.4版本中,使用mod_authz_host模块实现访问控制。如下是一些示例以示区别:
实例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.com所有请求都被允许,其他拒绝
Apache2.2 配置:Order Deny,Allow #排序,先拒绝后允许Deny from all #拒绝所有Allow from example.com #允许example.comApache2.4 配置:Require host example.org #用host来指定主机名,也可以用ip来替代host标签,这样后面就需要跟上对应ip信息实例4:允许所有主机访问,仅拒绝某主机

Apache2.4 配置:<RequireAll>  #需要增加一个容器require all grantedrequire not ip 192.168.100.10</RequireAll>


    发表评论

    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: