用.htaccess屏蔽/禁止IP访问

  • 4
  • 8,033 views
  • A+
所属分类:Linux

有时候我们会面临垃圾留言和恶意镜像网站的骚扰,这个时候用.htaccess文件可以屏蔽某IP或IP段的访问。
代码如下

Order Allow,Deny
Allow from all
Deny from 104.194.16.230 104.194.16.231

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

Order Allow,Deny
Allow from all
Deny from 192.168.1

以上相当于禁止192.168.1.1-192.168.1.254整个段
附录:使用详解
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

weinxin
我的微信公众号
我的微信公众号扫一扫

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  0   博主  0

    • 控 2

      Warning: Use of undefined constant auto - assumed 'auto' (this will throw an Error in a future version of PHP) in /www/wwwroot/past.cmsky.org/wp-content/themes/begin5.2/inc/inc.php on line 911

      学习了 :mrgreen:

        • 厘米 厘米 9

          Warning: Use of undefined constant auto - assumed 'auto' (this will throw an Error in a future version of PHP) in /www/wwwroot/past.cmsky.org/wp-content/themes/begin5.2/inc/inc.php on line 911

          @ 就上次那个恶意镜像事件后了解了一下htaccess,屏蔽那个IP成功了!

            • 同盟源 同盟源 7

              Warning: Use of undefined constant auto - assumed 'auto' (this will throw an Error in a future version of PHP) in /www/wwwroot/past.cmsky.org/wp-content/themes/begin5.2/inc/inc.php on line 911

              @厘米 我的站也被镜像了,用wdcp后台屏蔽的IP,学习了

                • 厘米 厘米 9

                  Warning: Use of undefined constant auto - assumed 'auto' (this will throw an Error in a future version of PHP) in /www/wwwroot/past.cmsky.org/wp-content/themes/begin5.2/inc/inc.php on line 911

                  @同盟源 有面板是满方便的~