出处:http://www.365mini.com/page/apache-directory-access-control.htm
给指定的文件夹配置对应的访问权限是Apache配置中的基础应用,也是Apache使用者的必备技能之一。
在Apache配置文件中,给指定目录设置基本的访问权限,主要是靠Allow
、Deny
、Order
三个指令的配合使用来实现的。
1.Allow指令
Allow
指令的作用与其英文单词的含义一致,用于设置允许访问当前目录(及其子目录)或文件的用户范围。例如,Allow from all
表示允许所有用户访问。下面,我们参考更多的例子,以帮助理解(Deny
与Order
用法一致):
<Directory /web>
#只允许IP为123.10.10.2的用户访问/web目录
Allow from 123.10.10.2
</Directory>
<Directory /web>
#只允许IP以10.10开头的用户访问/web目录
Allow from 10.10
</Directory>
<Directory /web>
#只允许域名为365mini.com的用户访问
Allow from 365mini.com
</Directory>
2.Deny指令
同样的,Deny
指令的作用就是「Deny(拒绝)」,用于设置拒绝访问当前目录或文件的用户范围。例如,Deny from all
表示拒绝所有用户访问。
3.Order指令
在Apache的配置文件中,Order
指令用于控制Allow
指令和Deny
指令的生效顺序。例如,Order Allow,Deny
表示当前配置段中的Allow
指令先生效,Deny
指令后生效。
在Apache中,Allow
指令和Deny
指令在同一配置段中都可以有多条。不过,对于Allow
和Deny
指令而言,如果先生效的指令与后生效的指令的作用范围存在冲突,则起冲突的作用范围部分以后生效的指令为准。
下面,我们同样参考几个具体的例子以帮助大家理解:
<Directory /web> Order Allow,Deny Allow from all Deny from 112.2.10.2 #先允许所有用户访问,再拒绝112.2.10.2 #总结:允许除IP为112.2.10.2外的所有用户访问 </Directory>
<Directory /web> Order Allow,Deny Deny from 112.2.10.2 Allow from all #先允许所有用户访问,再拒绝112.2.10.2 #总结:允许除IP为112.2.10.2外的所有用户访问 #(即使Deny指令在Allow指令之前,但是根据Order Allow,Deny语句,仍然先看Allow,再看Deny) </Directory>
<Directory /web> Order Deny,Allow Deny from 112.2.10.2 Allow from all Deny from 123.10.10.1 #先拒绝112.2.10.2访问 #再拒绝123.10.10.1访问 #最后允许所有用户访问 #总结:允许所有用户访问 #(即使Allow指令在Deny指令前,但是根据Order Deny,Allow语句,仍然先看Deny,再看Allow) </Directory>