apache -- apache的order配置指令

apache的order配置指令

 

apache的order配置指令控制默认的存取状态和deny,allow两个指令的执行顺序。

语法格式:

 

Order ordering


其中ordering可以是deny,allow或allow,deny和 Mutual-failure ,不过Mutual-failure 已经不再推荐使用了。

 

当值是Deny,Allow 时,所有的Deny指令都在Allow之前执行,而不管指令的出现顺序,默认存取控制是允许状态。相反当值是Allow,Deny时,所有的Allow指令都在Deny指令前执行, 而不管指令的出现顺序,默认存取控制是禁止状态。

 

需要注意的是执行顺序可能带来的重写或覆盖。后面执行的命令可能会覆盖的前面的指令。如:


Order Allow,Deny Allow from apache.org Deny from foo.apache.org 

 

Order Deny,Allow Allow from apache.org Deny from foo.apache.org 

 

上面两个的除了执行顺序上的区别,另外就是:

第一种情况中默认是禁止访问,所以刚开始是没有人能访问的,当执行完Allow from apache.org时,这个域名内的主机可以访问,然后再执行Deny from foo.apache.org,这样这在这个域名内的主机就不可以访问了。

第二种情况中默认是允许访问,所以在没执行任何指令前,所有人都能访问,但是虽然allow命令出现在前,执行的还是先执行Deny from foo.apache.org,所以现在除了这个子域内的主机都可以访问,然后执行Allow from apache.org,这条命令覆盖了上条指令,现在所有的主机都可以访问了。

 

就像之前说的,allow,deny的出现顺序决定了默认的存取状态,所以即使只是写了order指令,没有指定任何的allow,或deny指令,也会对目录的存取控制产生影响,就是默认的存取状态影响的。

<Directory /www> Order Allow,Deny </Directory>


你可能感兴趣的:(apache)