网站防镜像及避免搜索引擎快照404的方法

2018年8月26日22:44:42 4

由于自己使用了七牛云存储,访问给七牛的二级域名imgs.yxt521.com会显示跟原站一模一样,也就是被七牛镜像了,虽然也禁止了搜索引擎抓取,但看着有个一模一样的站点,实在不爽啊。

早期用的wordpress防镜像代码如下:

  1. //防镜像
  2. add_action( 'wp_enqueue_scripts', 'footerscript' );
  3. add_action('wp_footer','deny_mirrored_websites');
  4. function deny_mirrored_websites(){
  5. $currentDomain = 'www.yxt"+"521." + "com';
  6. echo '<img style="display:none" src=" " onerror=\'var str1="'.$currentDomain.'";str2="docu"+"ment.loca"+"tion.host";str3=eval(str2);if( str1!=str3 ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "\"' . $currentDomain .'\"" + ")";eval(do_action) }\' />';
  7. }

所有非源站地址都会替换为源站地址!

刚用时候还感觉良好,后来发现我所有页面百度快照打开都会跳转到404页面,仔细排查才发现是以上代码搞的鬼,把快照里的http://cache.baiducontent.com/都替换为https://www.yxt521.com/了!

随即度娘一下,在张戈博客里找到了升级版代码,算是完美解决这个问题了,代码如下:

  1. add_action('wp_footer','deny_mirrored_websites');
  2. function deny_mirrored_websites(){
  3. $currentDomain='www.yxt"+"521." + "com';
  4. echo '<img style="display:none" src=" " onerror=\'this.onerror=null;var str1="'.$currentDomain.'";str2="docu"+"ment.loca"+"tion.host";str3=eval(str2);if( str1!=str3 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="cncc.bingj.com" && str3!="snapshot.sogoucdn.com" ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "\"' . $currentDomain .'\"" + ")";eval(do_action) }\' />';
  5. }

可以看到,以上代码把主要搜索引擎(百度/谷歌/360/必应/搜狗)的快照地址都做了排除,老婆再也不会担心我们网站的快照404了!

当然以上代码都是针对wordpress站,需要你放到主题的 functions.php 最后一个?>之前!

但是像我用的begin主题有个地图页面,没有调用wp_footer函数,这就需要用到以下php通用代码,如下所示:

  1. <img style="display:none" src=" " onerror='this.onerror=null;var currentDomain="www.yxt" + "521." + "com"; var str1=currentDomain; str2="docu"+"ment.loca"+"tion.host"; str3=eval(str2) ;if( str1!=str3 && str3!="cache.baiducontent.com" && str3!="webcache.googleusercontent.com" && str3!="c.360webcache.com" && str3!="cncc.bingj.com" && str3!="snapshot.sogoucdn.com" ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "currentDomain" + ")";eval(do_action) }' />

然后将代码添加到网站所需页面文件的 <body> 之后即可。

好了,以上就是今天折腾的东西!为了大家少走弯路,在这里分享给大家,希望对你有用!
哦,对了,别忘记将以上代码中的:currentDomain='www.yxt"+"521." + "com';请自行拆分成自己的域名!

有错误之处,还望大家在评论里指正出来!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  2   男主  2   女主  0  

    • 路易大叔 来自天朝的朋友 火狐浏览器 Windows 10 山东省 移动 4

      我的都已经被镜像过好多次了

        • 大熊 男 主 来自天朝的朋友 谷歌浏览器  Mi Note 3 Build/OPM1.171019.019 甘肃省武威市 电信

          @路易大叔 你站坚持那么多年了,原创肯定有人镜像的!

        • 明月清风 来自天朝的朋友 QQ浏览器  Android 6.0 CAM-AL00 Build/HONORCAM-AL00 四川省雅安市 电信 2

          还好我的垃圾网站没人镜像。

            • 大熊 男 主 来自天朝的朋友 谷歌浏览器 Windows 7 中国 移动

              @明月清风 我主要是治疗我的强迫症,发现就得解决…