2011-02-18 241 views
30

如何允许仅对ip地址范围在ip地址的用户访问文件?htaccess通过ip范围访问文件

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

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

+0

允许从FROM_IP TO_IP – 2011-02-18 14:28:24

+0

@Manish特里维迪就试了一下:127.0.0.1是127.0.0.0 127.0.0.2拒绝。因此,这并不那么简单 - 除非我在测试中犯了错误。我有吗? – phihag 2011-02-18 14:36:03

回答

38

只需添加一个FilesMatchFiles指令将其限制在一个特定的脚本。

下会阻止存取权限在“admin.php的”结尾的所有脚本:

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

下只会阻止管理员。php:

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

欲了解更多信息,请参阅Configuration Sections上的Apache文档。

23

支票的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 

第一1至3个字节的IP的地址,用于子网限制ñ。

的网络/网络掩码对

实施例:

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位。

+0

但是如何将它用于admin.php文件? – Mirgorod 2011-02-18 14:44:25

+0

我在这里的权利线添加2个IP范围我允许从代码在htaccess中? http://stackoverflow.com/questions/31833456/how-do-i-allow-these-two-ip-ranges-in-my-htaccess-file – 2015-08-05 14:42:19

-2
Order Deny,Allow 
Deny from all 
Allow from 311.311.311 322.322.322.322 

answer here

3

单个IP只是这样做:

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

如果你想这样做像10.xxx范围,那么这样做:

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

您无法将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 
2

如果您正在使用WordPress,那么最好的,最简单的方法是安装插件 - LionScripts:从他们的网站WordPress的IP拦截http://www.lionscripts.com/ip-address-blocker

及其专业版具有更多的功能,如国家阻塞和IP范围阻塞,批量上传CSV等

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