.htaccess:如何通过 IP 限制对单个文件的访问?

Posted

技术标签:

【中文标题】.htaccess:如何通过 IP 限制对单个文件的访问?【英文标题】:.htaccess: how to restrict access to a single file by IP? 【发布时间】:2011-04-05 23:51:30 【问题描述】:

我已经查看了所有内容,但总是遇到有关目录级别 IP 限制的相同信息,通常看起来像这样:

Order Deny,Allow
Deny from all
Allow from 123.123.123.123

是否可以将相同类型的访问限制绑定到页面/文档?

【问题讨论】:

【参考方案1】:

有关最新的 Apache 2.4 示例:

<Files file.html>
    Require ip 123.123.123.123
</Files>

以下是有关其他选项和示例的更深入的文档:https://httpd.apache.org/docs/2.4/howto/access.html 和 &lt;Files&gt; 指令的文档:https://httpd.apache.org/docs/2.4/mod/core.html#files

请注意,&lt;Files&gt; 可以嵌套在 &lt;Directory&gt; 部分内,以限制它们适用的文件系统部分。

【讨论】:

【参考方案2】:

基于Mod-rewrite的解决方案:

RewriteEngine on

RewriteCond %REMOTE_ADDR !^Y\.O\.U\.R\.IP$
RewriteRule ^file\.php$ - [F,L]

如果客户端 ip 与 RewriteCond 模式中的 ip 地址不匹配,上面的 rewriteRule 将拒绝所有对 file.php 的请求

【讨论】:

这个答案对于许多开发人员来说并不清楚。 @landed 您能否解释一下我的回答中不清楚的地方?这是一个 mod-rewrite 解决方案,用于保护文件免受 IP 地址的影响,它是最简单、最快和最安全的方法。【参考方案3】:

这将允许来自 IP 127.0.0.1 的某人作为有效用户登录。将其粘贴在您的配置或 .htaccess 文件中。

    <Files learn.php>
        Satisfy any
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1

        AuthType Basic
        AuthName "private"
        AuthUserFile /var/www/phpexperts.pro/.htpasswd
        AuthGroupFile /dev/null
        Require valid-user
    </Files>

IP 单独:

    <Files learn.php>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Files>

这肯定回答了你的问题。

【讨论】:

有史以来最快的答案! @TheodoreR.Smith :如果我想拒绝一个 IP 但允许所有其他 IP,那么在 htaccess 中写什么? 更改为Allow from all Deny from IP_ADDRESS @TheodoreR.Smith,我试过你的代码,但我被禁止访问!从我的IP地址。我必须从我的单个 ip 访问 service.php 页面。 命令拒绝,允许全部拒绝 Allow from 0.0.0.0 prnt.sc/vtkknw【参考方案4】:

我认为指令需要是:

Order deny,allow

为了使上述答案起作用(至少对于 IP Alone 解决方案)。

【讨论】:

如何阻止组织从他们的电脑上打开我的网站?他们有 10 台 PC 连接在 LAN 上,他们只需要从他们的 5 台 PC 访问我的网站并阻止其他 5 台?我如何做到这一点?

以上是关于.htaccess:如何通过 IP 限制对单个文件的访问?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 IP 限制对我的 PHP 弹性 beanstalk 环境的访问?

如何通过 cpanel 中的 .htaccess 限制对我们网站的访问?

htaccess 通过 ip 范围访问文件

如何限制单个 IP 地址对 Flask 的访问?

全部拒绝,通过 htaccess 只允许一个 IP

使用 htaccess 限制 IP