• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
ECS Apache通过.htaccess对访问IP进行限制的具体操作
发布日期:2015-12-23 15:12:24

  用户网站业务运行过程中会遇到一些恶意IP的攻击访问或非法盗链、恶意采集网站资源的情况。若您的网站是使用Apache服务构建的,可通过在根目录下的.htaccess文件中进行相关配置来限制某些IP对网站的访问。

  1、禁止特定IP访问:

  Order Allow,Deny

  Allow from all

  Deny from 123.46.7.89

  以上设置表示禁止123.46.7.89访问,其他IP可以正常访问。

  2、禁止IP地址段访问:

  Order Allow,Deny

  Allow from all

  Deny from 192.168.1.

  以上设置表示禁止IP地址段192.168.1.0/24,也就是禁止192.168.1.1----192.168.1.254的IP访问。

  这里解释一下设置中出现的关键字:

  Allow和Deny可以用于Apache的.htaccess文件中,来控制目录和文件的访问授权,Allow表示允许,Deny表示拒绝。

  Order关键字可以决定Allow和Deny起作用的顺序,简单的说就是谁排在最后,谁就有最终的决定权,具体如下:

  Order Deny,Allow 意思是先检查是否有Deny规则,不论有没有Deny规则都会继续检查是否有Allow规则,如果有Allow,Allow规则的内容可以覆盖掉Deny规则。

  Order Allow,Deny恰好相反。

  例如:

  Order Allow,Deny

  Allow from IP1

  Deny from all

  这段规则实际上是禁止了所有IP访问。按照谁在最后谁有最终决定权的原则,deny from all就将allow的命令否决了。所以IP1也会被禁止,此规则会禁止所有IP对网站的访问。

  若想只允许IP1访问,其他IP全部禁止,正确的写法应该是:

  Order Deny,Allow //先检查Deny,由Allow拥有决定权

  Deny from all //Deny规则要求禁止所有IP的访问

  Allow from IP1 //Allow规则只允许IP1访问

  按照这个原则,可以应用到网站中的常用规则有:

  1. 禁止部分IP(IP1,IP2,IP3),其他IP全部允许访问的两种写法

  Order Deny,Allow

  Deny from IP1 IP2 IP3

  或者

  Order Allow,Deny

  Allow from all

  Deny from IP1 IP2 IP3

  2. 禁止特定IP的访问

  Order Allow,Deny

  Allow from all

  Deny from IP1 //IP1替换成用户需要屏蔽的IP,比如123.46.7.89