Apache拒绝CIDR范围,但允许在该范围内的IP

我正在使用一个长的CIDR黑名单来阻止来自某个站点的多个国家,但是我需要允许阻塞的CIDR范围内的特定IP地址。 这里是我的conf文件的一个摘录(这是我目前正在尝试的顺序,尽pipe我已经尝试在“拒绝”行之上移动“允许”行):

order allow,deny deny from 27.116.56.0/22 deny from 58.147.128.0/19 deny from 61.5.192.0/20 deny from 83.140.0.0/16 # ... allow from 83.140.19.38 

黑名单工作正常,但是,“允许”的行不是我是否把它们放在“拒绝”部分之上或之下。 有没有其他的configuration,我需要得到这个工作? Apache文档让我相信“允许”应该在“否认”之后出现,但似乎并没有直接回答这个问题。

这里的mod_authz_host的Apache手册部分很有帮助 。 您的允许和拒绝声明的顺序无关紧要。 在order allow,deny ,您必须至less匹配一个允许和拒绝指令才能接受您的请求。 我想你想要order deny,allow

Apache首先处理所有Deny和所有Allow指令。 然后通过匹配基于Order语句的规则来完成这一切 – 最后一场比赛胜出。 这意味着您deny from 83.140.0.0/16规则的deny from 83.140.0.0/16将被匹配后, allow from 83.140.19.38规则allow from 83.140.19.38 ,你被拒绝访问。 要解决这个更改Order Deny,Allow