关注云服务器
相关知识分享

用.htaccess禁止某个IP或者IP段访问网站

有的时候,我们会不想某个IP或者某个IP段访问我们的网站,原因嘛,很多,你懂就行。好了,我们来看看具体怎么操作吧。

在Apache环境下,.htaccess的作用是非常强大的,我们今天也是利用.htaccess来操作。

用代码编辑器NotePad++打开网站根目录的.htaccess,如果没有的话,去百度搜索.htaccess生成一个就好,然后把下面的代码添加到文档最后:

Order Allow,Deny
Allow from all
Deny from 88.88.88.88

上面的代码意思就是禁止IP为88.88.88.88的用户访问我们的网站。

如果是要禁止某一个IP段访问我们的网站的话,该怎么写代码呢?

Order Allow,Deny
Allow from all
Deny from 88.88.88.88 99.99.99.99

上面的代码就是禁止了88.88.88.88到99.99.99.99这个IP段的所有访问。

需要注意的是,Apache会按照order决定最后使用哪一条规则,Order后面的Allow和Deny两个的顺序非常重要。如果弄反了,会导致规则不能生效。

下面云测速来举个错误写法的例子:

Order Deny,Allow
Allow from all
Deny from 88.88.88.88

上面的代码,我们本来是想禁止88.88.88.88这个IP访问我们的网站的,但是由于Allow是最后的规则,所以Apache执行到第二句Allow的时候已经执行成功了,就不会再去看第三句。所以上面的代码是默认执行允许所有访问的。

总结

影响最终判断结果的只有两点:

1. order语句中allow、deny的先后顺序;

2. allow、deny语句中各自包含的范围。

温馨提示:

1、修改完.htaccess里面的规则以后,需要保存好以后,重启Apache服务,配置才能生效。

2、开头的字母不区分大小写的。

3、order语句中,"Allow,Deny"之间只有一个逗号(英文格式),而且先后顺序极其重要。

4、Apache有一条缺省规则,“order allow,deny”本身就默认了拒绝所有的意思,因为deny在allow的后面;同理,“order deny,allow”本身默认的是允许所有;当然,最终判断结果还要综合下面的allow、deny语句中各自所包含的范围;(也就是说order语句后面可以没有allow、deny语句)。

5. allow、deny语句中,第二个单词一定一定要是“from”,不然Apache会出错而导致无法启动。

6、“order allow,deny”代表先判断allow语句再判断deny语句,反之亦然。

赞(0) 打赏
未经允许不得转载:云测速 » 用.htaccess禁止某个IP或者IP段访问网站

觉得文章有用就打赏一下文章作者吧~

微信扫一扫打赏