Apache批量屏蔽IP地址方法_Apache IIS屏蔽IP访问教程详解
搜索引擎蜘蛛抓取异常时,需要通过规则精准拦截不良蜘蛛,保护服务器资源。Apache和IIS的IP屏蔽方式有多种(.htaccess、web.config、服务器配置、防火墙),用户分不清该用哪种方式,配置后规则优先级混乱。配置了IP屏蔽规则后,正常用户也被屏蔽无法访问网站,或者恶意IP仍然能访问,规则没有达到预期效果。
通过抓包分析和日志比对,故障原因基本锁定在几个方向。虚拟主机的.htaccess被空间商禁用(AllowOverride None),用户上传的IP屏蔽规则不生效。屏蔽规则中使用了R=301重定向,但重定向目标也在被屏蔽的IP范围内,导致循环重定向。CDN或反向代理环境下,$_SERVER['REMOTE_ADDR']获取的是CDN节点IP,基于REMOTE_ADDR的屏蔽规则匹配的是CDN IP而非用户真实IP,导致要么屏蔽无效要么误封CDN节点。IP地址填写错误(如多写了一位、点号位置错误),导致规则匹配不到目标IP,或误匹配了其他IP段。IIS的IP屏蔽功能(IP和域限制)需要安装"IP和域限制"角色服务,未安装时web.config中的
按照从易到难的顺序,依次执行以下操作。Apache 2.2 .htaccess屏蔽IP:Order Allow,Deny
Allow from all
Deny from 192.168.1.100
Deny from 192.168.1.0/255.255.255.0,注意2.2版本用Deny from,2.4用Require not ip。Apache 2.4 .htaccess屏蔽单个IP:Require not ip 192.168.1.100,屏蔽IP段:Require not ip 192.168.1.0/24,需要配合
从更广泛的运维视角来看,还有一些容易被忽略的诱发因素。CDN或反向代理缓存了旧的响应结果,规则修改后用户仍看到缓存的旧页面。正则表达式中特殊字符未转义,如点号、问号、星号等元字符被当作普通字符匹配。服务器配置变更后没有重启Web服务或回收应用程序池,新规则没有加载生效。
实际操作中还需要注意以下细节。伪静态规则修改后需要重启IIS或Apache服务,新规则才能生效。域名屏蔽适用于防止恶意域名绑定到自己的服务器IP,配置后检查正常域名访问是否正常。伪静态规则中避免使用过于宽泛的匹配,防止误拦截正常页面。修改规则前务必备份原配置文件,规则出错导致网站500错误时能快速回滚。
除了上述问题,实际运维中还可能遇到以下相关故障。IP屏蔽规则在CDN环境下不生效,CDN回源IP被屏蔽导致所有用户无法访问,需要获取真实客户端IP。IP屏蔽后正常用户也无法访问,可能是屏蔽范围过大,使用了过于宽泛的CIDR段。.htaccess规则不生效,确认Apache配置中AllowOverride是否设置为All。蜘蛛屏蔽后正常搜索引擎也被拦截,检查User-Agent匹配规则是否过于宽泛。
网站运维中伪静态、防盗链、IP屏蔽是基础安全配置,熟悉其原理和配置方法能显著提升网站稳定性。

更新时间:2026-08-27 13:12:24