为什么很多商家在微信封域名如此严格的情况下,还会挤破头皮去做微信营销和推广呢?又有些人问,为什么别人的域名长时间推广都没事,自己的链接在微信内一推就被拦截呢?这里你可能需要注意一点事,事出无常必有妖。
其实是因为他们的域名经过了防封处理,微信很难抓取到,故可以长时间存活。域名被封会直接影响到推广效率和转换率,这两点又恰恰是直接跟利益挂钩的。所以域名防封技术究竟有多重要,我想就不用我多说什么了吧?
那么有朋友问我了,这个技术要怎么实现呢?又是如何实现域名防封呢?下文给大家说说微信域名防封技术的实现原理。
实用场景
做BC、棋牌、灰度分享、文案引流等行业的老板是不是经常碰到一个问题,一个域名用几天就被封了,买域名都要花上不少的钱。
最痛苦的是被封后没有及时发现,还继续使用被封的链接去引流,这既浪费了时间,又因为粉丝打开链接后被微信告知是违法网站,导致信任感降低。
微信检测体系
1、人为举报
这个是谁也解决不了的,只要页面确实有问题,人工举报就会被封,任何人也无法承诺这样的域名不会被封,有服的话来个例子发我,工作时间24小时内我一定会让它封掉。
2、系统轮询初查
可能的原因:
① 域名历史,有过违规记录,风险名单中的重点高频检测。
② 关联,服务器 IP 友链 邻居有违规的,重点检测。
③ 内容 标题 关键词 描述 主体 页头页脚 有风险违规词的,被系统轮询测到了。
④ 图片 ,视频, 对于明显特征或复用度高的违规图片,系统是能识别的。
3、人工检测,对风险名单中 筛出来的,个别的 还会有人工检测来确认。
微信域名防封方案
1、跳转破微信封域名,这个技术的原理是域名批量解析生成N个二级域名,域名无限替换跳转;并且网页入口、落地页、转发到朋友圈的域名都不同,即使被举报了短时间内也不会有问题。
2、仿举报页面,其原理就是在网页上自己做一个举报按钮,举报页面也是仿微信举报选项,不过只能解决普通小白用户的举报。目前可恶的同行开发了模拟人工举报的软件,走的微信举报流程,让人防不胜防。
3、租防封域名,这个域名本质上是有备案号+游戏备案号+微信白名单的域名。
4、CDN防护原理,利用高仿服务器转发你的链接,经过防火墙的屁胡流量等技术细节,让域名被微信封的几率大大降低,但是不能100%防封,不过目前该技术防封效果是最好最持久的。
注意:说百分百防封的都是骗人的,不要当腾讯的技术团队是吃素的。
关于微信跳转
配置你的程序,用三套域名A、B、C,比如说分享出去的域名是A,这里面A被称作是主域名。
点开后跳到B,跳转之前检测一下B有没有被封,这里面的B就称作是落地域名。通常情况下落地域名B需要准备几十甚至上百个,利用域名检测接口可以轻松实现被封自动切换。
那C是干什么用的呢,微信4月25日以后改变了分享规则,通过JSSDK分享域名必须是公众号后台绑定域名,不能像以前那样想分享什么域名就可以分享什么域名了。
C域名专门用作分享,在B域名下触发分享条件以后跳到C域名,自定义分享出去以后,C域名从程序上设置又跳回到A。
这样A->B->C->A循环跳转
/** * 请求接口返回内容 * @param string $url [请求的URL地址] * @param string $params [请求的参数] * @param int $ipost [是否采用POST形式] * @return string */ function go51wCurl($url, $params = false, $ispost = 0) { $httpInfo = array(); $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); if ($ispost) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_URL, $url); }else { if ($params) { curl_setopt($ch, CURLOPT_URL, $url.'?'.$params); } else { curl_setopt($ch, CURLOPT_URL, $url); } } $response = curl_exec($ch); if ($response === FALSE) { //echo "cURL Error: " . curl_error($ch); return false; } $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $httpInfo = array_merge($httpInfo, curl_getinfo($ch)); curl_close($ch); return $response; }