我的知识记录

Apache屏蔽蜘蛛不影响正常搜索引擎_Apache IIS屏蔽蜘蛛抓取教程详解

网站上线后,防盗链、IP屏蔽、蜘蛛拦截这些安全配置必不可少。配置了蜘蛛屏蔽规则后,正常的搜索引擎蜘蛛(百度、谷歌)也被屏蔽,导致网站收录下降,规则需要更精确地匹配。网站被大量不良蜘蛛和采集爬虫抓取,消耗服务器带宽和CPU资源,导致正常用户访问变慢,甚至触发服务器流量超限。

从URL重写和访问控制的工作机制来看,出现该现象有几个必然的触发条件。robots.txt只是君子协定,不良蜘蛛不会遵守robots.txt的禁止规则,必须通过服务器规则强制屏蔽。虚拟主机的.htaccess被空间商禁用,用户上传的蜘蛛屏蔽规则不生效,需要通过空间商控制面板或联系服务商配置。IIS web.config中的蜘蛛屏蔽规则放在了节点外,或条件判断中使用了错误的服务器变量(如{USER_AGENT}而不是{HTTP_USER_AGENT}),导致规则不生效。User-Agent匹配规则过于宽泛,如使用RewriteCond %{HTTP_USER_AGENT} ^.*bot.*$ [NC]会匹配所有包含bot的UA,包括正常的Googlebot、Bingbot,导致误封正常搜索引擎。Apache的.htaccess中蜘蛛屏蔽规则使用了[NC](忽略大小写),但UA字符串中包含特殊字符(如+、/、括号)没有转义,导致正则表达式匹配失败或500错误。蜘蛛屏蔽规则中使用了301重定向,但重定向目标页面也被蜘蛛屏蔽规则匹配,导致循环重定向。恶意蜘蛛伪造User-Agent为"Mozilla/5.0 (compatible; Baiduspider/2.0)",仅通过UA判断无法区分真假百度蜘蛛,需要反向解析IP确认是否来自百度官方IP段。

具体操作上,可以参考以下处理流程。结合IP段屏蔽伪造蜘蛛:在Apache中同时匹配UA和IP段,RewriteCond %{HTTP_USER_AGENT} ^.*Baiduspider.*$ [NC] RewriteCond %{REMOTE_ADDR} !^180.76. RewriteCond %{REMOTE_ADDR} !^220.181. RewriteRule ^(.*)$ - [F,L],UA是百度但IP不在百度IP段则屏蔽。验证真假百度蜘蛛:在Linux服务器执行host 123.123.123.123(蜘蛛IP),如果反向解析结果包含*.baidu.com或*.baidu.jp则是真百度蜘蛛,否则是伪造的;谷歌蜘蛛反向解析应包含*.googlebot.com或*.google.com。Apache只允许指定搜索引擎(白名单):RewriteEngine On RewriteCond %{HTTP_USER_AGENT} !^.*Googlebot.*$ [NC] RewriteCond %{HTTP_USER_AGENT} !^.*Baiduspider.*$ [NC] RewriteCond %{HTTP_USER_AGENT} !^.*bingbot.*$ [NC] RewriteCond %{HTTP_USER_AGENT} !^.*Sogou.*$ [NC] RewriteCond %{HTTP_USER_AGENT} !^.*360Spider.*$ [NC] RewriteRule ^(.*)$ - [F,L],非白名单UA一律403。robots.txt配合:在robots.txt中添加Disallow规则禁止不良蜘蛛,虽然不良蜘蛛可能不遵守,但合规的蜘蛛会遵守,双重防护效果更好。CDN环境:在CDN控制台配置WAF规则或爬虫管理功能,基于UA和行为分析屏蔽不良蜘蛛,CDN层面屏蔽比源服务器更高效,且能获取真实客户端UA。验证规则:用curl模拟蜘蛛UA测试,如curl -A "AhrefsBot/1.0" https://www.example.com/,返回403则规则生效;用正常浏览器访问确认不受影响;检查服务器访问日志确认不良蜘蛛的请求返回403。注意事项:屏蔽蜘蛛前确认不会影响正常收录,建议先屏蔽已知的SEO工具蜘蛛(Ahrefs、Semrush、Majestic等),不要轻易屏蔽百度、谷歌等主流搜索引擎;屏蔽后观察网站流量和收录变化,如有异常及时调整规则。Apache .htaccess屏蔽指定蜘蛛:RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^.*AhrefsBot.*$ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^.*SemrushBot.*$ [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^.*MJ12bot.*$ [NC] RewriteRule ^(.*)$ - [F,L],[F]返回403禁止访问。

从更广泛的运维视角来看,还有一些容易被忽略的诱发因素。配置文件编码格式错误,包含BOM头或非UTF-8编码,导致XML或配置解析失败。CDN或反向代理缓存了旧的响应结果,规则修改后用户仍看到缓存的旧页面。

实际操作中还需要注意以下细节。IIS7+使用URL Rewrite模块,需要先安装该模块才能配置伪静态规则。防盗链规则配置后,用不同来源的请求测试,确保正常访问不受影响。屏蔽规则配置后定期检查日志,确认被屏蔽的访问确实是恶意行为。伪静态规则修改后需要重启IIS或Apache服务,新规则才能生效。

除了上述问题,实际运维中还可能遇到以下相关故障。IIS web.config规则报错500,检查XML语法是否正确以及URL Rewrite模块是否安装。伪静态规则中中文URL乱码,需要在规则中添加NE(no escape)标志或配置编码。域名屏蔽后所有域名都无法访问,检查规则中的条件判断是否写反了。防盗链配置后自己网站的图片也无法显示,检查规则中的允许域名是否包含了自己的域名。蜘蛛屏蔽后正常搜索引擎也被拦截,检查User-Agent匹配规则是否过于宽泛。

建立一套标准化的规则测试和上线流程,能让团队在配置变更时快速响应并降低出错概率。

Apache屏蔽蜘蛛不影响正常搜索引擎_Apache IIS屏蔽蜘蛛抓取教程详解

标签:

更新时间:2026-08-27 10:22:20

上一篇:网站被挂木马跳转赌博色情网站处理_网站安全_防黑防挂马_安全加固

下一篇:光纤微信六开设置_绿色版教程_win11 专业版稳定