【引言】

最近我在折腾一个建站工具,想接入一个推广联盟平台(Impact),赚点服务器钱。按照官方教程,我要在网页的 <head> 里加上一段验证代码。

本以为复制粘贴就能搞定,结果却让我折腾了几个小时。记录一下这个离谱的踩坑过程,也给同样在折腾独立博客的朋友提个醒。

【排查过程:我是怎么被机器“骗”的】

一开始,我把 <meta name="impact-site-verification" content="..."> 的代码放进了 Halo 博客的后台“代码注入”里。

我去点了平台验证,失败。

我想,可能是代码格式不对,把 value 改成了标准的 content。还是失败。

我按 F12 检查网页源码,代码明明好端端地躺在 <head> 里!网页内容里也贴了纯文本,怎么就是不行?

【寻找元凶:CDN 缓存与格式玄学】

我查了资料,很多人说是因为 CDN 缓存。

我用的香港服务器,套了 qedge 的 CDN。于是我去 CDN 控制台刷新了缓存,心想这次总行了吧?结果平台依然提示我验证失败。这个时候,我甚至怀疑是不是要联系人工客服手动通过了。

【真相大白:防火墙的“无情背刺”】

就在我百思不得其解的时候,我突然想起来了!为了防止海外垃圾爬虫和攻击,我前段时间在服务器/CDN 安全组里,开启了“禁止海外(不含港澳)访问”的防火墙规则!

破案了!平台的验证爬虫服务器,绝大多数都在海外(比如美国、欧洲)。我开了禁止海外访问,它的机器来抓取我的网页时,直接吃了一个闭门羹(403 拦截),它连网页都打不开,怎么可能看得见我的验证代码?!

【解决方案】

去防火墙里,把“禁止海外访问”的规则暂时关掉 -> 回平台点击验证 -> 秒过!

验证通过后,我再把防火墙重新打开。

【总结避坑指南】

代码格式要标准:尽量用 <meta name="..." content="...">。

注意 CDN 缓存:改了代码一定要去 CDN 刷新缓存,不然爬虫抓到的是旧页面。

检查防火墙/安全组:如果你开了“禁止海外访问”或“严格的反爬规则”,记得把搜索引擎和验证平台的机器人 IP 加入白名单,或者暂时关闭规则。

希望这篇小记能帮到同样在折腾建站的你。