繁体   English   中英

拒绝所有访问文件但只有一个ip | htaccess的

[英]Deny all access to a file but one ip | htaccess

我尝试了以下但DOESNT工作(没有机构可以访问该文件,包括我希望它访问的IP)

<Files something.php>
Order allow,deny
Deny from all
allow from zzz.zzz.zzz.zzz
</Files>

我想拒绝除了一个ip之外的所有世界的文件访问,我该怎么做? 谢谢

我在一篇较旧的帖子中找到了我的答案,其中一个答案在这里: .htaccess:如何通过IP限制对单个文件的访问? ,正确的是:

 <Files something.php>
 Order deny, allow
 Deny from all
 allow from zzz.zzz.zzz.zzz
</Files>

从原来我改变了“订单允许,拒绝”到“命令拒绝,允许”,它的工作原理!

它不起作用的原因是因为你的Deny指令覆盖了你的Allow指令。 什么Order Allow,Deny做的是:

  1. 评估Allow ,如果匹配则标记“允许”。
  2. 评估Deny ,标记“拒绝”,如果有任何匹配(即使以前匹配Allow
  3. 评估标志。 如果未设置标志,则拒绝它。

因此,如果您不希望拒绝所有请求,则需要 Deny from All 删除 Deny from All 只是MickeyRoush的回答。

至于Order Deny,Allow ,它是“相反的”:

  1. 评估Deny ,标记“拒绝”,如果有任何匹配。
  2. 评估Allow ,标记“允许”,如果有任何匹配(即使先前与Deny匹配)
  3. 评估标志。 如果未设置标志,请允许它。

请参阅MickeyRoush提供的链接以获取更多信息。

实际上你使用的第一个指令会起作用,但它需要在正确的位置。

Order Allow,Deny
<Files something.php>
Allow from zzz.zzz.zzz.zzz
</Files>

请注意,我删除了所有拒绝,因为它不是必需的。

http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM