• home > OMD > SEO >

    360搜索引擎so自动收录php改写方案——适合phpcms等cms

    Author:zhoulujun Date:

    360提供的自动收录代码非人性化,不知道那个实习生做的!不忍吐槽,为什么要在用户打开页面的时候提交,自动收录。为什么开放对公提交 sitemap和批量提交api?

    360搜索引擎自动收录功能,官方提供了代码,带式,十分坑爹,没有提供批量提交入口,只是提供了一段js代码,关键是 一个js去下载另外一个js,document.write到文档,然后再 重复2遍如此工作。

    弱弱地问:为什么不像百度一样提供 批量提交入口?

    难道是,靠这个自动提交功能,搜集网站的数据,比如document.refer等数据?这个也是比较流氓了吧?

    据说360的搜索引擎目前在中国 市场占有率为20%以上,不知道真假,本人是十分怀疑的!

    起码本人基本只用谷歌!奈何在天朝还是基本用百度,小白还是太多太多的!

    只好忍了,加360的自动收录吧!

    于是对代码进行一番改造!

    官网的原始代码如下:

    (function(){
    var src = (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('');
    })();http://js.passport.qihucdn.com/11.0.1.js?970506d365e969bd0e92a2611c18678edocument.write('')

    http://s7.qhres.com/static/ab77b6ea7f3fbf79.js

    官网提供的代码进过二次方document.write的代码如下,这个js的代码如下:

    (function (e) {
        function t(e) {
            var t = location.href, n = t.split("").reverse(), r = e.split(""), i = [];
            for (var s = 0, o = 16; s < o; s++)i.push(r[s] + (n[s] || ""));
            return i.join("")
        }
    
        var n = /([http|https]:\/\/[a-zA-Z0-9\_\.]+\.so\.com)/gi, r = e.location.href;
        if (r && !n.test(r) && window.navigator.appName) {
            var i = "//s.360.cn/so/zz.gif", s = document.getElementById("sozz"), o = s.src.split("?")[1], u = t(o), a = new Image;
            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
    
     */
    function getPushSoUrl($url){
        $token="970506d365e969bd0e92a2611c18678e";
        return $str="http://s.360.cn/so/zz.gif?url=".urlencode($url)."&sid=". $token."&token=".getPushToken($url,$token);
    }
    function getPushToken($url,$o){
        $n = str_split($url,1);
        $n=array_reverse($n);
        $r = str_split($o,1);
        $i=[];
        for($s=0,$o=16;$stoken=$token;
        }
    //    function __construct($token) {
    //        $this->token=$token;
    //    }
        public function getPushToken($url,$o){
            $n = str_split($url,1);
            $n=array_reverse($n);
            $r = str_split($o,1);
            $i=[];
            for($s=0,$o=16;$stoken."&token=".$this->getPushToken($url,$this->token);
        }
    
    
    }
    */

    在 模板 phpcms/templates/default/content/  比如show index 添加如下代码:


    okay,验证下

    和js的效果是一样的。

    手工,不知道官方对此方案态度如何,目前还没有收到回复,邮寄给官方发过邮寄和论坛、知乎都提问,无人问津啊

    先干了再说吧!


    转载本站文章《360搜索引擎so自动收录php改写方案——适合phpcms等cms》,
    请注明出处:https://www.zhoulujun.cn/html/Operation/seo/2018_0426_8102.html