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

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

Order Deny,Allow
Deny from all
Allow from 123.123.123.123

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

【问题讨论】:

    标签: apache .htaccess apache2 apache2.2


    【解决方案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 台?我如何做到这一点?
      猜你喜欢
      • 2018-02-18
      • 1970-01-01
      • 2011-06-29
      • 2021-12-16
      • 2011-05-13
      • 2014-04-24
      • 2017-05-08
      • 2022-01-17
      相关资源
      最近更新 更多