.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 和 <Files>
指令的文档:https://httpd.apache.org/docs/2.4/mod/core.html#files
请注意,
<Files>
可以嵌套在<Directory>
部分内,以限制它们适用的文件系统部分。
【讨论】:
【参考方案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 页面。 我认为指令需要是:
Order deny,allow
为了使上述答案起作用(至少对于 IP Alone 解决方案)。
【讨论】:
如何阻止组织从他们的电脑上打开我的网站?他们有 10 台 PC 连接在 LAN 上,他们只需要从他们的 5 台 PC 访问我的网站并阻止其他 5 台?我如何做到这一点?以上是关于.htaccess:如何通过 IP 限制对单个文件的访问?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 IP 限制对我的 PHP 弹性 beanstalk 环境的访问?