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

时间:2012-11-28 00:44:18

标签: apache .htaccess

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

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

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

3 个答案:

答案 0 :(得分:1)

我在一篇较旧的帖子中找到了答案,其中一个答案在这里:.htaccess: how to restrict access to a single file by IP?,正确的是:

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

从原版我改为“订单允许,拒绝”改为“订单拒绝,允许”并且它有效!

答案 1 :(得分:1)

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

  1. 评估Allow,标记&#34;允许&#34;如果有匹配的话。
  2. 评估Deny,标记&#34;拒绝&#34;如果有任何匹配(即使先前与Allow匹配)
  3. 评估标志。如果未设置标志,则拒绝它。
  4. 因此,如果您不希望拒绝所有请求,则必需 删除 Deny from All。只是MickeyRoush的回答。

    对于Order Deny,Allow,它是&#34;反对&#34;:

    1. 评估Deny,标记&#34;拒绝&#34;如果有匹配的话。
    2. 评估Allow,标记&#34;允许&#34;如果有任何匹配(即使先前与Deny匹配)
    3. 评估标志。如果未设置标志,请允许它。
    4. 请参阅MickeyRoush提供的链接以获取更多信息。

答案 2 :(得分: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