如何理解Apache配置文件中的deny与allow-成都快上网建站

如何理解Apache配置文件中的deny与allow

如何理解Apache配置文件中的deny与allow,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

绥滨ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

Apache配置文件中的deny与allow小结,本文着重讲解了deny和allow的执行顺序问题,需要的朋友可以参考下

今天在公司配置Zend本地Apache环境的时候,发现在zend.conf中的权限控制中的几段句子,如下所示:
 代码如下:
  
    SetHandler server-status   
    Order deny,allow   
    Deny from all   
    Allow from 127.0.0.1   


自己在配置虚拟主机的时候需要配置VirtualHost,
 代码如下:
  
    ServerName backend   
    DocumentRoot "D:/Program Files/Zend/Apache2/htdocs/public"   
    SetEnv APPLICATION_ENV "development"   
      
        DirectoryIndex index.php   
        AllowOverride All   
        Order allow,deny   
        Allow from all   
   
  


两段Order语句的不同引起了我的兴趣,那么到底这里的顺序是怎样执行的呢?先前联想到了“短路”的概念,有相同,也有不同,下面用几个例子来分析一下。
 代码如下:
    Order deny,allow            
    –(注意deny与allow之间只有一个逗号,并且只能这样书写,其他写法都是错误的)   
    Allow from all  
    Deny from 219.204.253.8    

全部都可以通过。
 代码如下:
    Order deny,allow   
    Deny from 219.204.253.8   
    Allow from all  

–全部都可以通过 。
 代码如下:
Order allow,deny   
Deny from 219.204.253.8   
Allow from all

只有219.204.253.8不能通过。
 代码如下:
Order allow,deny   
Allow from all  
Deny from 219.204.253.8

只有219.204.253.8不能通过 。

根据Apache官网的 解释,allow方向影响的是可以通过一个服务器区域的主机,这个主机可以通过主机名(hostname)、IP地址、IP地址范围或者通过其他的客户端 请求条件。与之相反的正是deny,deny控制的是不被服务器所允许的主机,deny的识别方式也是主机名(hostname)、http://www.bbqmw.net/qm_bbqmbd/IP地址及范围、或者 环境变量等。而位于顶层的Order起到的作用就是制定规则。比如上面案例1中,我们的Order为先检查deny后检查allow,那么我们可以把下面 的两句话当做一个list,这两句话没有自然的先后顺序,即检查deny时候,我们发现219.204.253.8这台主机是满足拒绝条件的,那么就进行 第二步检测,即allow的检查,发现allow做的事情是:allow from all,意思即全部来源都可以获得通过。这里的关键是,一切访客进来之后都不是一棒子打死的,都要经过两步验证,那么可以发现全部机器都是可以获得通过 的,与结果一致。

看完上述内容,你们掌握如何理解Apache配置文件中的deny与allow的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


名称栏目:如何理解Apache配置文件中的deny与allow
文章地址:http://kswjz.com/article/pecsph.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流