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>