需求来源
经常遇到不少用户、朋友询问,微信怎么封域名那么厉害,有没有高效可用的防封方案?
我的回答是:“有”。请看下文解析和源码。
源码编译
$url = "http://api.monkeyapi.com"; $params = array( 'appkey' =>'appkey',//您申请的APPKEY 'url' =>'www.monkeyapi.com',//需要查询的网站 ); $paramstring = http_build_query($params); $content = monkeyCurl($url, $paramstring); $result = json_decode($content, true); if($result) { var_dump($result); }else { //请求异常 }<<--有不懂的加q咨询:511979480-->>
/** * 请求接口返回内容 * @param string $url [请求的URL地址] * @param string $params [请求的参数] * @param int $ipost [是否采用POST形式] * @return string */ function monkeyCurl($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; }
影响因素
先明确为什么会被封?无非就是你的链接带有诱导分享、带有博彩、擦边球(黄色、虚假信息等)的内容,被人投诉或举报导致微信团队封杀你的域名。有的域名即使真的违反了这些规则,也没事,众所周知如PDD,就算你投诉到死,也是告诉你:该链接的确存在诱导分享,已限制该链接在朋友圈的分享。
这就说明,进入微信域名白名单的重要性,不会或者不容易被封,这也是为何现在网上有人叫卖不死域名--这些域名之所以不死并不是所有域名都像PDD一样背靠企鹅的强大背景。主要是因为以前腾讯管家有一个安全联盟,可以将域名申请认证,加入所谓的安全联盟,这样就算是进了白名单,二级域名挂了,也不会导致现在许多域名一死全死的结果。但是可惜现在所谓的安全联盟已经关了,这个途径已经无效。
当然,最有效的防封手段就是遵守微信条例,不要有诱导分享、打擦边球的情况,不然你就算有1000个域名也不够封。
拓展分析
在给客户做微信营销(报名、砍价)的过程中,经常遇到明明我的活动是真实有效的,但是活动进行到一半,域名被封了!让公司和用户头疼脑热,不停的申述无果,等解封了早就在半个月后,真实冤案。于是便认识到了域名防封的重要性--用户(竞争对手)投诉你到域名被封总要经过10分钟以上,一般人不可能24小时不停举报你吧(好吧我服,现在真的有人在做外挂,模拟出不停举报一个域名的软件。但真的遇到这种极少见的情况我也没办法),所以以下这种防封策略是最为有效可行的,我们也通过该方法成功保障了活动营销从不再碰上“做到一半被终止”的惨剧。
防封原理
1、自动转向(Auto-Redirecting),也叫自动重定向。自动跳转,指当访问用户登陆到某网站时,自动将用户转向其它网页地址的一种技术。转向的网页地址可以是网站内的其它网页,也可以是其它网站。通常情况下,浏览器会收到一个网页,该页面含有自动加载一其它网页的代码。该页面有可能在服务器端被转换,这样的话,浏览器只收到一个页面,而自动转向往往意味着浏览器收到的页面具有自动将访问用户送至其它页面的功能。
对自动转向技术(Auto-Redirecting)的合理应用包括:将用户转向到指定浏览器的网页版本;当网站的域名变更或删除后将人们转向到新域名下,等等。但现在这种技术却往往被搜索引擎优化人士用来作为提高网站的搜索引擎排名的一种手段。例如,先专门针对搜索引擎做一个高度优化的网页,也就是我们通常所说的“桥页”,然后把这个网页提交给搜索引擎来获得好的排名。但是,当搜索用户通过搜索引擎的搜索结果列表点击该网页列表进入后,将被自动转向到一个用户本来无意去访问的网站地址。搜索引擎常常认为自动转向的网页是对读者的误导,所以它会对这种网页或网站施以惩戒,不过对一些自动转向方法它目前还无法自动检测出来。
2、Meta Refresh Tag自动转向法
由于搜索引擎能够读取HTML,而Meta tags也是HTML,所以对于这种自动转向法,搜索引擎能够自动检测出来。因而无论网站的转向出于什么目的,都很容易被搜索引擎视做对读者的误导而受到惩罚。不过,如果跳转延迟时间设置合适,搜索引擎就不会视之为作弊。
页面定时刷新元标识(Meta Refresh Tag)只能放在HTML代码的< HEAD>区里。如下所示:其中的“pagename.html”指特定的重定向目标地址,用相对/绝对URL地址均可。
用javascript实现自动重定向的好处在于:用户所访问的目标URL不会保留在用户浏览器的历史记录中,如果用户按返回按钮返回,则将回到跳转前的网页,而不是包含javascript自动重定向脚本的跳转页面,所以不会出现当用户点击返回按钮后返回至重定向页,然后该页自动跳转到用户本来想离开的那个页面的尴尬情形。
如果需要,可以把javascript自动重定向脚本存在一个外部文件中,并通过下面的命令行来加载,其中“filename.js”是该外部文件的路径和文件名:
注意:若需实现即刻转向,或不希望人们看到转向前的那个页面,一般常用javascript脚本实现。在这种情况下应将javascript脚本放入HTML源码的区中。
小结:
如果访问用户最终看到的是他们想看到的,那么在搜索引擎优化中使用自动转向技术并没有什么不对,也并不是什么不道德的行为。但有些人往往会在利用“自动跳转”技术,利用“桥页”吸引访问者,然后把他们送到他们无意浏览的页面或网站,这种做法只会引起访问用户的反感。