上个月,有个做减肥产品的朋友找我,说他的百度竞价账户又废了。钱充进去没两天,落地页就被标记为异常推广,账户直接限制消费。他跟我抱怨说做了好几年都不懂AB页跳转怎么做。这种痛我太懂了。我刚入行那会儿,也交了五位数学费,才搞清楚从白页到黑页那个跳转到底该怎么配置才安全。
AB页跳转到底是怎么回事
简单说,就是把白页和黑页分开,用户点击广告后,审核人员和普通访客看到的页面不一样。白页是给平台审核看的,通常是合规的产品介绍或企业官网;黑页才是你真正想推的落地页,可能带转化组件或者一些违禁词。实现这一整套逻辑,就是AB页跳转。
这个做法不是走歪门邪道,而是为了绕开审核机制的误杀。审核机制看不懂你的真实转化意图,只看页面内容和广告投放描述的匹配度。你不做跳转,一个带营销话术的页面,平台直接判你违规。所以AB页跳转怎么配置,直接决定了你的账户能活多久。
配置前的必备环境检查
动手配置之前,先看清楚你的服务器环境。不同环境用的跳转代码写法差异很大,别一上来就抄网上那个PHP代码,结果发现你服务器跑的是Linux+Nginx,代码里却是Apache的伪静态规则。
服务器类型和程序语言
推荐用PHP来写跳转逻辑。PHP在处理UA检测和IP判断上很灵活,而且大部分服务器面板都支持。如果你用的是Windows服务器,IIS+PHP也是可以的,但后续调整规则会麻烦一点。我自己一直用Linux + Nginx + PHP 7.4,稳定,性能也好。
检查方式很简单:SSH登录服务器,输入php -v,看版本号。如果是5.6以下的,建议升级一下,老版本对cURL支持不好,影响IP检测的准确性。
域名和SSL证书
需要准备两个域名。一个给审核看,一个做跳转目标。白页域名必须备案,否则广告平台根本不会让你上。黑页域名可以不用备案,但最好隐藏在跳转逻辑后面,别直接暴露在投放链接里。
两个域名都要配SSL证书,用Let‘s Encrypt免费证书就行。不配HTTPS的话,浏览器显示“不安全”,流量折损很厉害。
白页跳黑页怎么做?核心代码实战
这部分最容易被忽略。很多人觉得随便搜个Cloak教程就行,结果代码里全是漏洞。我分享一个自己改过的版本,经过半年测试,通过率稳定在80%以上。
第一步:创建白页文件
在服务器根目录新建一个文件夹,比如white。里面放一个index.html,内容就是合规的产品介绍。不要放任何诱导性按钮和违禁词。白页的结构要像正常企业站,包含导航栏、产品展示、联系方式、底部版权信息。最好加上百度统计和TalkingData,模拟真实访问者的浏览行为。
白页内容建议用长文章形式,自然融入关键词,比如“健康体重管理方法”、“科学减脂方案”,不要直接写“7天暴瘦”、“减肥神药”这种。
第二步:写跳转核心代码
在白页文件夹里创建一个cloak.php文件。这个文件负责所有检测和跳转逻辑。下面直接贴代码,注释我写清楚了。
cloak.php代码示例:
<?php
// 开启缓存,避免多次检测影响速度
ob_start();
// 获取用户IP
$user_ip = $_SERVER[‘REMOTE_ADDR’];
// 设置黑页跳转地址
$black_url = “https://你的黑页域名.com/landing”;
// 检测IP是否在白名单
$whitelist = array(‘123.123.123.123’, ‘456.456.456.456’); // 这里放你的白名单IP
if (in_array($user_ip, $whitelist)) {
header(“Location: “.$black_url);
exit;
}
// 检测User-Agent,屏蔽蜘蛛和模拟器
$user_agent = $_SERVER[‘HTTP_USER_AGENT’];
$bot_keywords = array(‘Googlebot’, ‘Baiduspider’, ‘Sogou’, ‘Bytespider’, ‘Mediapartners’, ‘AdsBot’);
foreach ($bot_keywords as $bot) {
if (strpos($user_agent, $bot) !== false) {
// 是蜘蛛,显示白页
include ‘index.html’;
exit;
}
}
// 检测Cookie,防止重复跳转
if (isset($_COOKIE[‘passed’])) {
// 已经通过检测,直接跳黑页
header(“Location: “.$black_url);
exit;
}
// 设置跳转Cookie,有效期24小时
setcookie(‘passed’, ‘1’, time()+86400, ‘/’);
// 默认显示白页,不跳转(安全模式)
include ‘index.html’;
ob_end_flush();
?>
这个代码的逻辑是:如果检测到是蜘蛛或白名单IP,就显示白页;如果检测到是正常用户且有Cookie,就直接跳黑页。第一次访问的用户不会立即跳转,这样能避免AD审核抓现行。
第三步:配置伪静态规则
在Nginx下,需要在站点配置里添加一条规则,让所有请求都先经过cloak.php。
Nginx配置示例:
location / {
try_files $uri $uri/ /cloak.php?$query_string;
}
如果是Apache,在.htaccess里加:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ cloak.php [L]
配好之后,直接用浏览器访问你的白页域名,看会不会自动跳转到黑页。如果一直显示白页,检查一下Cookie是不是没设置成功,或者跳转代码里有没有语法错误。
AB页跳转怎么防封?三个真实场景复盘
场景一:百度竞价的审核扫描
百度审核有两种:机器审核和人工复审。机器审核会在你提交落地页的瞬间,模拟浏览器访问一次,并且会检测页面内容。这时候如果检测到跳转,直接拒审。所以代码里必须做到第一次访问不跳转,只显示白页。等审核通过后,真实用户第二次访问时才触发跳转。
我有个客户做医美,用了上面的代码后,第一次提交被机器人扫描,只看到白页的产品新闻,顺利通过。第二天用户访问时,因为有了Cookie,直接跳到了带咨询表单的黑页,转化率提升了60%。
场景二:谷歌广告的跨域检测
谷歌的审核比百度更严格,它会检测页面是否发生跨域跳转。如果你的黑页域名和白页域名不一样,谷歌会记录下这个跳转链路。一旦发现跳转目标页面存在违规内容,账户直接挂掉。解决办法是让黑页和白页使用同一个主域名,用子域名区分。比如白页用www.abc.com,黑页用lp.abc.com。这样跳转发生在同域内,谷歌不容易发现异常。
但要注意,子域名也要备案,不然谷歌那边一样会报警。
场景三:程序化广告平台的动态IP
不少平台会使用动态IP池来审核落地页,比如字节跳动的穿山甲。它会用不同城市、不同运营商的IP反复请求你的落地页。如果你的检测规则只基于IP白名单,很容易被对付。这时候要加入更多维度,比如检测请求时间间隔、HTTP头里的Referer、甚至浏览器指纹。
我的做法是:在代码里增加一个时间窗口限制。如果同一个IP在10秒内请求超过3次,直接判定为审核机器人,显示白页。这个逻辑用上面那个PHP代码也能实现,加个数组记录每个IP的请求时间戳就行。
常见问题汇总
做AB页跳转,最容易出问题的就是以下几个细节。我一个个说清楚。
问题一:白页和黑页内容差异太大
有些朋友直接把企业官网和白页划等号,但黑页内容完全走样。平台一旦发现两个页面风格、主题完全不同,会判定为欺骗行为。正确做法是白页和黑页的标题、产品名称、核心卖点保持一致。比如白页讲“智能体脂秤的功能”,黑页就讲“如何用智能体脂秤定制减脂方案”,逻辑上要能衔接上。
问题二:跳转逻辑被破解
有人用客户端JavaScript做跳转,比如window.location.href,这个很容易被平台检测。因为JS执行在浏览器端,平台可以抓取到跳转目标。正确做法是服务端跳转,用PHP的header函数,或者Nginx的rewrite规则。服务端跳转在浏览器端不可见,平台检测不到真实跳转链路。
问题三:Cookie被频繁清除
有些浏览器会自动清除第三方Cookie,导致用户每次访问都触发检测,不稳定的跳转容易被平台标记。解决方法是使用localStorage辅助写标记,同时结合IP白名单做保底。另外,黑页的域名最好和白页共用,避免跨域导致Cookie不互通。
跳转插件有用吗?什么时候用
市面上有不少跳转插件,比如WP Cloaker、Cloak Ninja,配置起来确实方便。但插件依赖平台环境,如果主题或者插件版本冲突,跳转逻辑会失效。而且插件通常把代码写在数据库里,平台可以通过检测数据库文件来判断是否存在跳转逻辑。所以插件适合小流量、低风险的业务。如果你的预算大,账户被封一次损失上万,还是自己写PHP代码可控。
我用过几款插件,综合下来感觉CLOAKCORE的稳定性还可以,但价格偏高,每月200美元左右。对于刚开始做AB页跳转的新手,可以先从免费插件试手,等跑通流程再自己定制。
最后两句实在话
AB页跳转怎么配置,今天我已经把核心步骤和代码都拆开了。但说实话,没有一劳永逸的配置方法。平台审核规则在变,用户行为也在变。保持代码灵活,定期检查白页内容,才能活得更久。另外,任何跳转技术都有风险,别把全部预算押在一个账户或一套规则上,多账户分散才是王道。