【发布时间】:2012-04-14 03:25:22
【问题描述】:
我希望只允许一个国家/地区访问,但排除该国家/地区内的代理。
这就是我所拥有的(为方便起见缩短版)
<Limit GET POST>
order deny,allow
deny from all
allow from 139.82.0.0/16
allow from 143.54.0.0/16
allow from 186.192.0.0/11
allow from 186.224.0.0/11
.
deny from 186.201.27.66
deny from 186.201.196.1
deny from 186.214.51.231
deny from 186.237.225.26
</Limit>
但我知道这行不通。我该怎么做?
【问题讨论】:
-
当然可以,但在这种情况下,(代理)最后一个拒绝组 IP 在允许的 IP 范围内,这将被最后处理。
-
改用
order allow,deny。 -
喜欢这个?
order allow,deny allow from 139.82.0.0/16 allow from 143.54.0.0/16 allow from 186.192.0.0/11 allow from 186.224.0.0/11 . . . deny from 186.201.27.66 deny from 186.201.196.1 deny from 186.214.51.231 deny from 186.237.225.26 deny from all因为拒绝是最后处理的,deny from all不会使所有允许无效吗? -
我错过了
deny from all。您需要完全删除该行。引用 apache 的文档。首先,评估所有 Allow 指令;至少一个必须匹配,否则请求将被拒绝。接下来,评估所有拒绝指令。如果有任何匹配,则拒绝该请求。最后,默认情况下拒绝任何与 Allow 或 Deny 指令不匹配的请求。 -
谢谢!您能否确认“允许,拒绝”将按预期工作,只要我不对所有人使用拒绝?