【Apache】Apache2.2与Apache2.4实现访问控制教程

TangLu 未命名 2017-06-04 7895 0

在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.com

Apache2.4 配置:
Require host example.org #用host来指定主机名,也可以用ip来替代host标签,这样后面就需要跟上对应ip信息

实例4:允许所有主机访问,仅拒绝某主机


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



评论