阿里云弹性Web托管主机用htaccess屏蔽恶意IP的方法

最近我的博客和一些工作网站陆续更换到阿里云服务器,但其中一个阿里云弹性Web托管的主机几乎每天都会被几个陌生的IP地址攻击,导致网站异常数据流量骤升,尽管不影响网站正常访问,但是也不能任这些人肆意作恶。由于经常攻击网站的这几个IP相对固定,所以目前最有效的方式还是屏蔽掉他们。

由于阿里云提供的这个弹性主机是基于LAMP结构的,但由于只是提供的主机空间,没有主机控制权限,因此只能从htaccess配置文件入手,按以往apache是2.2版本的通用写法把非法ip写入配置文件上传服务器htdocs目录后出现了500错误,整个网站打不开。屏蔽这些语法规则,网站恢复访问,看来还是写法有问题。

经详细了解阿里云弹性web产品信息才弄白了,原来阿里云弹性web托管主机的apache是2.4版本。.htaccess文件中的规则需要使用apache 2.4的语法编写。我把两个方法都分享给大家,大家可以根据自己的apache版本选择,示例中IP地址为你想要拒绝访问的IP地址,如有多个ip地址还可以逐行添加。

方法一:适用于apache是2.4之前版本

order allow,deny
deny from 10.252.46.165
allow from all

方法二:适用于apache是2.4版本

<RequireAll>
    Require all granted
    Require not ip 10.252.46.165
</RequireAll>

更多关于apache 2.4关于访问控制的详细说明可以参看如下链接:

http://httpd.apache.org/docs/2.4/howto/access.html