• 从集合的角度理解Order Allow Deny语句

    Allow Deny的合集就是全集
    服务器君一共花费 19.573 ms 进行了 4 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    看完前面两个小节的内容,应该对 Order Allow Deny 语句的使用没什么问题吧。这里,我们用集合的概念继续加深对它们的理解。

    用集合来理解 Order Allow Deny

    Order A, B   (其中,A和B均可以代表allow或者deny,以下conlist表示控制列表)
    A from conlist1 
    B from conlist2
    

    那么最终访问控制的结果为:(以(A)表示A的控制范围)

    (A)= (conlist1) U (!conlist2)  (!--取反,U--并集,n--交集)
    (B)= (!A) = (!conlist1) n (conlist2)
    (A)+(B)= I(全集)
    

    下面有一个图简单表示了allow与deny的范围关系:

    比如:

    Order allow,deny
    Allow from 192.168.10.0
    Deny from 192.168.10.1
    

    (Allow) = 192.168.10.0 网段中除 192.168.10.1 之外的IP地址。

    (Deny) = 192.168.10.1 + 192.168.10.0 网段之外的IP地址。

    Order后面allow和deny的顺序与下面Allow from和Deny from的顺序无直接关系。最终求得的范围是根据Order那一行的顺序来写的。即上面例子的结果等同于:

    Order allow,deny
    Deny from 192.168.10.1
    Allow from 192.168.10.0
    

    如果在order之后并没有定义具体的allow或deny的访问控制列表,则默认以后者为准。

    几个例子

    Order allow,deny
    deny from 219.204.253.8
    allow from all
    

    根据集合图,deny 为绿色部分,只有219.204.253.8不能通行。

    Order allow,deny
    deny from all
    allow from 219.204.253.8
    

    同样,deny from all 这句让绿色占满全屏,即全部都不能通行。

    order allow,deny
    allow from 218.20.253.2
    deny from 218.20
    

    Deny 与 Allow 的交集就是 allow 的本身,所以还是表示全部都拒绝。

    • 是不是用集合图的概念之后比较容易理解了?另外 Order Deny Allow 也是类似的图,可以自己尝试去画一画就知道了。
更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [移动开发] 使用support-v7 ActionBar前的那些坑 3 个条目
  2. [智力开发与知识管理] 信息的类型与结构 9 个条目
  3. [移动开发] Android开发基础知识 4 个条目
  4. [PHP程序设计] httpd.conf设置相关 3 个条目
  5. [智力开发与知识管理] 整体性学习步骤 9 个条目
  6. [智力开发与知识管理] 超越整体性学习 5 个条目
  7. [移动开发] Android抽屉导航NavigationDrawer 5 个条目
  8. [移动开发] Layout_weight属性解析 5 个条目
  9. [Linux操作系统] CentOS上使用EPEL Repository 2 个条目
  10. [Python程序设计] Tornado 服务器环境配置 3 个条目
  11. [移动开发] 刷机与root相关 2 个条目
  12. [Python程序设计] Django Web环境配置 2 个条目
窗口 -- [八点]