如何从 Apache 限制指令中排除文件

如何从 Apache 限制指令中排除文件

我们目前有一个 .htaccess 文件,如下所示

<Limit GET POST>
order deny, allow
deny from all
allow from localhost
allow from ...
</Limit>

目前这适用于整个目录。我想从这些规则中排除目录中的一个文件,以便可以从整个互联网访问它。有什么想法吗?

答案1

(我不确定Limit此处指令的目的是什么。它允许所有客户端使用这些 HTTP 方法:PUT、DELETE、CONNECT、OPTIONS、PATCH、PROPFIND、PROPPATCH、MKCOL、COPY、MOVE、LOCK 和 UNLOCK。您难道不希望限制所有方法,而不仅仅是 GET 和 POST 吗?)

您可以像这样使用Files(或FilesMatch) 指令:

<Files "foo.html">
    allow from all
</Files>

答案2

使用 mod_rewrite 和 [F] 标志:

RewriteEngine On
RewriteCond %{REMOTE_ADDR}  !127.0.0.1
RewriteCond %{REMOTE_ADDR}  !192.168.0.1
RewriteRule !^foo$ - [F]

相关内容