htaccess通过ip范围访问文件

时间:2011-02-18 14:22:57

标签: php .htaccess

如何只允许文件访问具有ip地址范围的ip的用户?

例如文件admin.php。范围从0.0.0.0到1.2.3.4。

我只需要配置访问一个文件而不是目录。

7 个答案:

答案 0 :(得分:44)

只需添加FilesMatchFiles指令即可将其限制为特定脚本。

以下将阻止访问以“admin.php”结尾的所有脚本:

<FilesMatch "admin\.php$">
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/24
</FilesMatch>

以下只会阻止admin.php:

<Files "admin.php">
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/24
</Files>

有关更多信息,请参阅Configuration Sections上的apache文档。

答案 1 :(得分:26)

查看Allow Directive

的手册页
Order Deny,Allow
Deny from all
Allow from 10.1.0.0/255.255.0.0
  

部分IP地址

     

示例:

Allow from 10.1
Allow from 10 172.20 192.168.2
     

IP地址的前1到3个字节,用于子网限制。

     

网络/网络掩码对

     

示例:

Allow from 10.1.0.0/255.255.0.0
     

网络a.b.c.d和网络掩码   w.x.y.z.对于更细粒度的子网   限制。

     

网络/ nnn CIDR规范

     

示例:

Allow from 10.1.0.0/16
     

与之前的情况相似,除了   网络掩码由nnn高阶组成   1位。

答案 2 :(得分:10)

您无法将IP范围与allow匹配,但您可以使用多个CIDR网络模拟它:

Order allow,deny
# 0.0.0.0 - 0.255.255.255.255
Allow from 0.0.0.0/8
# 1.0.0.0 - 1.1.255.255
Allow from 1.0.0.0/15
# 1.2.0.0 - 1.2.1.255
Allow from 1.2.0.0/23
# 1.2.2.0 - 1.2.2.255
Allow from 1.2.2.0/24
# 1.2.3.0 - 1.2.3.3
Allow from 1.2.3.0/30
# 1.2.3.4
Allow from 1.2.3.4

答案 3 :(得分:3)

只针对单个IP执行此操作:

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

如果你想在10.x.x.x之类的范围内进行,请执行以下操作:

<Limit GET POST> 
order allow,deny 
allow from 10
deny from all
</LIMIT>

答案 4 :(得分:1)

如果您使用的是WordPress,那么最好和最简单的方法是从他们的网站http://www.lionscripts.com/ip-address-blocker

安装插件 - LionScripts:WordPress IP阻止程序

他们的专业版具有更多功能,如国家拦截和IP范围拦截,批量csv上传等。

答案 5 :(得分:0)

如果要提供通配符0.0.255.255

Order allow,deny
# 1.2.0.0 - 1.2.255.255
Allow from 1.2.0.0/16

这将给出范围从1.2.0.1 - 1.2.255.254

你也可以check here

答案 6 :(得分:-3)

Order Deny,Allow
Deny from all
Allow from 311.311.311 322.322.322.322

请参阅answer here