所以。最常用的是:
Order Deny,Allow
Allow from All
注意“Deny,Allow”中间只有一个逗号。也只能有一个逗号。有空格都会出错;单词的大小写不限。
上面设定的含义是先设定“先检查禁止设定。没有禁止的全部允许”。而第二句没有Deny。也就是没有禁止访问的设定。直接就是允许所有访问了。这个主要是用来确保或者覆盖上级目录的设置。开放所有内容的访问权。
按照上面的解释。下面的设定是无条件禁止访问:
Order Allow,Deny
Deny from All
如果要禁止部分内容的访问。其他的全部开放:
Order Deny,Allow
Deny from ip1 ip2
或者
Order Allow,Deny
Allow from all
Deny from ip1 ip2
apache会按照order决定最后使用哪一条规则。比如上面的第二种方式。虽然第二句allow允许了访问。但由于在order中allow 不是最后规则。因此还需要看有没有deny规则。于是到了第三句。符合ip1和ip2的访问就被禁止了。注意。order决定的“最后”规则非常重要。下面是两个错误的例子和改正方式:
Order Deny,Allow
Allow from all
Deny from domain.org
错误:想禁止来自domain.org的访问。但是deny不是最后规则。apache在处理到第二句allow的时候就已经匹配成功。根本就不会去看第三句。
解决方法:Order Allow,Deny。后面两句不动。即可。
Order Allow,Deny
Allow from ip1
Deny from all
错误:想只允许来自ip1的访问。但是。虽然第二句中设定了allow规则。由于order中deny在后。所以会以第三句deny为准。而第三句的范围中又明显包含了ip1(all include ip1)。所以所有的访问都被禁止了。
解决方法一:直接去掉第三句。
解决方法二:
Order Deny,Allow
Deny from all
Allow from ip1
总结:Order Deny,Allow中。后一个是一定会被执行的(有相应的allow或deny语句时)。如果没有则按照语义分析。
本文地址:https://gpu.xuandashi.com/41160.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!