3

我尝试了以下但不起作用(没有人可以访问文件,包括我希望它访问的 IP)

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

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

4

3 回答 3

1

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

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

从原来的我将“命令允许,拒绝”更改为“命令拒绝,允许”并且它有效!

于 2012-11-28T02:10:24.717 回答
1

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

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

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

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

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

有关更多信息,请参阅 MickeyRoush 提供的链接。

于 2015-02-19T05:38:02.023 回答
0

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

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

于 2012-12-18T18:21:28.287 回答