用.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地址。
并另存为.,上传到根目录,一般为public_html,部分程序会有这个文件,例如,直接添加到里面即可。

禁止ip段

Order Allow,Deny
Allow from all
Deny from 192.168.1

附录:使用详解
Allow和Deny可以用于的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

原文链接:https://yusky.me/htaccess-deny-ip.html,转载请注明出处。
0

评论8

  1. 这样禁止IP访问,主要是为了防止垃圾评论,还是为了防止攻击啊
    • 可以防止垃圾评论。也可以防止恶意访问或者简单的攻击防护。
      Yusky 2015-04-26 0 回复
  2. 正好我也是linux,试试看 :cool:
    西门 2015-04-05 0 回复
  3. 禁止一个IP访问,这个是防止攻击用的吧
  4. 博主的博客很不错,不知道能不能交换友链呢?如果博主有意向的话,可以加我的QQ2764757536详谈
  5. 原来这样就可以禁止一个ip访问
  6. 原来这个先后顺序是像CSS起作用那样,后面的覆盖前面的,又学了点儿。
没有账号?注册  忘记密码?