给指定的文件夹配置对应的访问权限是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>