我尝试了以下但不起作用(没有人可以访问文件,包括我希望它访问的 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
是:
Allow
,如果有任何匹配,则标记“允许”。Deny
,如果有任何匹配则标记“拒绝”(即使之前匹配Allow
)因此,如果您不希望所有请求都被拒绝,则需要删除。只是 MickeyRoush 回答的一个注释。 Deny from All
至于Order Deny,Allow
,它是“相反的”:
Deny
,如果有任何匹配,则标记“拒绝”。Allow
,如果有任何匹配则标记“允许”(即使之前匹配Deny
)有关更多信息,请参阅 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