关注互联网与Web前端技术,这里是我记录网上折腾与生活感悟的地方.

用.htaccess 禁止某IP访问

代码如下

Order Allow,Deny
Allow from all
Deny from 125.64.2.46 182.237.3.102 58.215.169.18 114.80.132.9 121.14.48.5 66.249.67.182 94.180.84.186 58.243.40.76 89.123.61.113 116.23.60.197 110.75.172.81 60.215.129.75

允许所有,禁止 XXX,请将里面的IP改成你要封杀的IP地址。
并另存为.htaccess,上传到网站根目录,一般为public_html,部分程序会有这个文件,例如WP,直接添加到里面即可。

禁止ip段

Order Allow,Deny
Allow from all
Deny from 192.168.1

附录:使用详解
Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用来控制目录和文件的访问授权。order,顾名思义是顺序的意思,所以order命令可以决定deny和allow起作用的顺序,通俗的说就是谁排在最后那么谁就有最终的决定权。

order deny,allow和order allow,deny的区别也就显而易见了,前者的意思是先检查是否有deny命令,不论有没有都会再继续检查是否有allow规则,如果有,allow规则的内容可以覆盖掉deny规则。例如,

Order Allow,Deny
Allow from ip1
Deny from all

本意是想禁止ip1的访问,而允许其他所有ip访问,但显然用反了顺序,按照谁在后谁最大的原则,deny是掌握大权的人,所以deny from all就将allow的命令否决了。正确的写法应该是:
Order Deny,Allow //先检查Deny,并由Allow拍板

Deny from all //Deny命令要求禁止所有ip的访问

Allow from ip1 //Allow说只允许ip1访问

结果:只允许ip1访问网站,禁止其他所有ip的访问。

按照这个原则,还有如下应用。

禁止特定ip的访问

order allow,deny allow from all deny from 1.1.1.1 ;写要封的IP

禁止部分ip,其他的全部开放的两种写法

Order Deny,Allow
Deny from ip1 ip2

或者
Order Allow,Deny
Allow from all
Deny from ip1 ip2

未经允许不得转载:Yusky » 用.htaccess 禁止某IP访问

分享到:更多 ()

评论 8

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #6

    这样禁止IP访问,主要是为了防止垃圾评论,还是为了防止攻击啊

    阿里百秀2年前 (2015-04-23)回复
    • 可以防止垃圾评论。也可以防止恶意访问或者简单的攻击防护。

      Yu Sky2年前 (2015-04-26)回复
  2. #5

    正好我也是linux,试试看 😎

    西门3年前 (2015-04-05)回复
  3. #4

    禁止一个IP访问,这个是防止攻击用的吧

    拇指读3年前 (2015-03-17)回复
  4. #3

    博主的博客很不错,不知道能不能交换友链呢?如果博主有意向的话,可以加我的QQ2764757536详谈

    威客圈子3年前 (2015-03-14)回复
  5. #2

    原来这样就可以禁止一个ip访问

    IT疯狂女3年前 (2015-03-06)回复
  6. #1

    原来这个先后顺序是像CSS起作用那样,后面的覆盖前面的,又学了点儿。

    咸菜一点米3年前 (2015-03-05)回复