这个指令并没有像我想象的那么简单。而且也不像iptalbes那样去匹配。
order 的语法:
Order ordering
注意的几点:
1:最后匹配原则。
2:allow 和 deny 两个指令的先后顺序无关。所有的allow行作为一个组处理,deny也是这样。
3:不区分大小写。
ordering 有三种形式:
1:Allow,Deny (注意Allow和Deny之间有个逗号,不能有空格或其他的符号。)默认拒绝所有。首先判断Allow后面的,然后再看Deny后面的。最后所有没有被Allow和Deny指定的都被默认的拒绝。
例如:
Order Allow,Deny
Deny from 123.232.97.245
Allow from 218.56.152.84
分析:根据Order的顺序,先允许218.56.152.84的请求,接着拒绝123.232.97.245的请求。。其他的没有被Deny和Allow匹配的,按照默认的都拒绝。
2:Deny,Allow 默认允许所有。首先,所有匹配Deny都会被拒绝,除非它被后面的Allow所匹配。其余的都被允许。
例如:
Order Deny,Allow
Deny from all
Allow from 123.232.97.245
分析:由Order指定的顺序,先拒绝所有的连接。接着是允许123.232.97.245。两者做“或”运算,即允许123.232.97.245,其他的都不允许。没有不匹配Allow和Deny的其他的请求。
3:Mutual-failure 和Order Allow,Deny一样,不推荐用。
再举几个例子:
1:允许所有,这也是默认的
Order deny,allow
2:允许所有的请求。先拒绝219.204.253.8的请求,再允许所有。这又允许了219.204.253.8的请求。
Order deny,allow
allow from all
deny from 219.204.253.8
3:拒绝123.232.97.245的连接
order deny ,allow
deny from 123.232.97.245