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

    Allow Deny的合集就是全集
    服务器君一共花费 22.995 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. [移动开发] Content Provider内容提供者 3 个条目
  2. [搜索引擎优化] 百度搜索引擎优化指南 3 个条目
  3. [数据库技术] 无限级分类数据表设计 4 个条目
  4. [软件工程与项目管理] 开始了解Git 5 个条目
  5. [Python程序设计] Tornado背景知识介绍 4 个条目
  6. [PHP程序设计] PHP扩展模块安装 1 个条目
  7. [移动开发] ListView 使用相关问题集 1 个条目
  8. [软件工程与项目管理] 浏览器的HTML解析器 8 个条目
  9. [计算机算法] TAOCP与算法 12 个条目
  10. [移动开发] 从代码角度去认识HttpClient 2 个条目
  11. [Python程序设计] Django模板系统 11 个条目
  12. [移动开发] Android Studio的使用技巧 4 个条目
窗口 -- [博客]