360搜索引擎so自动收录php改写方案——适合phpcms等cms
360搜索引擎自动收录功能,官方提供了代码,带式,十分坑爹,没有提供批量提交入口,只是提供了一段js代码,关键是 一个js去下载另外一个js,document.write到文档,然后再 重复2遍如此工作。
弱弱地问:为什么不像百度一样提供 批量提交入口?
难道是,靠这个自动提交功能,搜集网站的数据,比如document.refer等数据?这个也是比较流氓了吧?
据说360的搜索引擎目前在中国 市场占有率为20%以上,不知道真假,本人是十分怀疑的!
起码本人基本只用谷歌!奈何在天朝还是基本用百度,小白还是太多太多的!
只好忍了,加360的自动收录吧!
于是对代码进行一番改造!
官网的原始代码如下:
<script>(function(){varsrc=(document.location.protocol=="http:")?"http://js.passport.qihucdn.com/11.0.1.js?970506d365e969bd0e92a2611c18678e":"https://jspassport.ssl.qhimg.com/11.0.1.js?970506d365e969bd0e92a2611c18678e";document.write('<scriptsrc="'+src+'"id="sozz"><\/script>');})();
http://js.passport.qihucdn.com/11.0.1.js?970506d365e969bd0e92a2611c18678e
document.write('<scriptcharset="utf-8"src="http://s7.qhres.com/static/ab77b6ea7f3fbf79.js"></script>')
http://s7.qhres.com/static/ab77b6ea7f3fbf79.js
官网提供的代码进过二次方document.write的代码如下,这个js的代码如下:
(function(e){functiont(e){vart=location.href,n=t.split("").reverse(),r=e.split(""),i=[];for(vars=0,o=16;s<o;s++)i.push(r[s]+(n[s]||""));returni.join("")}varn=/([http|https]:\/\/[a-zA-Z0-9\_\.]+\.so\.com)/gi,r=e.location.href;if(r&&!n.test(r)&&window.navigator.appName){vari="//s.360.cn/so/zz.gif",s=document.getElementById("sozz"),o=s.src.split("?")[1],u=t(o),a=newImage;r&&(i+="?url="+encodeURIComponent(r)),o&&(i+="&sid="+o),u&&(i+="&token="+u),o&&(a.src=i)}})(window);
分析发现
最终目的还是 img 请求提交,尼玛,于是,改造如下:
在phpcms v9的phpcms/libs/functions/ 目录下,找到extention.func.php 文件,添加如下代码:
/***360推送@www.zhoulujun.cn*/functiongetPushSoUrl($url){$token="970506d365e969bd0e92a2611c18678e";return$str="https://cache.yisu.com/upload/information/20200310/52/107046.jpg?url=".urlencode($url)."&sid=".$token."&token=".getPushToken($url,$token);}functiongetPushToken($url,$o){$n=str_split($url,1);$n=array_reverse($n);$r=str_split($o,1);$i=[];for($s=0,$o=16;$s<$o;$s++){array_push($i,empty($n[$s])?$r[$s]:$r[$s].$n[$s]);}returnimplode($i);}/*classpush_so_url{private$token="970506d365e969bd0e92a2611c18678e";publicfunctionsetToken($token){$this->token=$token;}//function__construct($token){//$this->token=$token;//}publicfunctiongetPushToken($url,$o){$n=str_split($url,1);$n=array_reverse($n);$r=str_split($o,1);$i=[];for($s=0,$o=16;$s<$o;$s++){array_push($i,empty($n[$s])?$r[$s]:$r[$s].$n[$s]);}returnimplode($i);}publicfunctiongetImgUrl($url){return$str="https://cache.yisu.com/upload/information/20200310/52/107046.jpg?url=".urlencode($url)."&sid=".$this->token."&token=".$this->getPushToken($url,$this->token);}}*/
在 模板 phpcms/templates/default/content/ 比如show index 添加如下代码:
<imgsrc="{getPushSoUrl($_SERVER['HTTP_HOST'].$url)}">
okay,验证下
和js的效果是一样的。
手工,不知道官方对此方案态度如何,目前还没有收到回复,邮寄给官方发过邮寄和论坛、知乎都提问,无人问津啊
先干了再说吧!
转载请注明来源:
周陆军的个人网站-360搜索引擎so自动收录php改写方案——适合phpcms等cms
http://www.zhoulujun.cn/zhoulujun/html/Operation/seo/2018_0426_8102.html
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。