【已解决】网站被镜像解决方案大全

网站被镜像是什么意思

恶意镜像,也叫恶意克隆,恶意解析,是指有人通过域名A记录直接解析别人IP地址,从而得到一个在访问者眼中完全相同网站的过程。其工作原理基本上是这样子的:有用户访问镜像站点时,程序就会来正版的站点查询数据,并修改相关链接然后呈献给用户,实质上还是在读取原站的数据。

如何查看自己的网站是否被别人镜像?

在搜索引擎中限定搜索范围在自己网站的完整标题中(PS:查看自己站点首页源码,其中<title>这里就是站点的网站标题</title>),如搜索:

从上图搜索结果中可以看出,有几个跟我们站点标题一模一样的,但是域名却不是我们的,说明已经被恶意镜像了。

网站被镜像了怎么办

恶意镜像者意图通过自己有一定权重的域名进行威压,让搜索引擎对刚刚成立的网站产生迷惑,对同时存在和解析的两个域名分不清真假,不知如何抉择。有的搜索引擎技术比较成熟,可以分清真假,但是也有部分搜索引擎傻傻地分不清楚,有可能会选择恶意者的域名,同时删去原站长的域名

至于恶意者得手之后会做些什么?我们无法推测,但是无论如何都不会是对我们有利的。千万不要因为镜像网站给我们带来的一些流量而庆幸,因为带来流量的同时也会带走你的用户,在搜索引擎迷惑的同时,用户也会无所适从,不知道哪个是真,哪个是假。如果恶意者域名或者其它部分含有敏感不健康的信息,也可能会导致受害者IP被封掉。

 

网站被镜像如何屏蔽

方法一:借助imgoneerror事件防恶意镜像

1WordPress站点,如果你对于建站还不会可以去看下北京seo之前的建站教程《最新零基础建站教程

将以下代码添加到主题functions.php文件最后一个?>即可。其他类似js防镜像方法可以不用了,不过用了也不会冲突。

  1. add_action(‘wp_footer’,’deny_mirrored_websites’);
  2. function deny_mirrored_websites(){
  3.     $currentDomain = ‘seoajun.” + “com’;
  4.     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) }\’ />’;
  5. }

,其中,’seoajun.” + “com’需要自行修改成自己的域名即可,带有www的可以修改成”www.” + “seoajun” + “.com”

2HTML通用站点

将以下代码添加到网站的<head>和</head>之间即可,WP一般为header.php文件,其他建站程序请自行搞定,这个版本适合任何网页。

  1. <img style=“display:none” src=” “ onerror=’var currentDomain=“seoajun.” + “com”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) }’ />

其中,’seoajun.” + “com’需要自行修改成自己的域名即可,带有www的可以修改成”www.” + “seoajun” + “.com”

网站被镜像排名被替换怎么解决

通过禁止某些User Agent特征防恶意镜像

1PHP通用版

将以下代码加入到PHP网站根目录的index.php的<?php 之后即可。

  1. /**
  2.  * PHP通用版 禁止UA为空或含有PHP的请求 
  3. **/
  4. **/
  5. $ua = $_SERVER[‘HTTP_USER_AGENT’];
  6. if(!$ua || preg_match(‘/PHP/i’, $ua)) {
  7.     header(“Content-type: text/html; charset=utf-8”);
  8.     die(‘请勿采集本站,因为采集的站长木有小JJ!’);
  9. }

2WP专用版

将以下代码添加到主题functions.php文件最后一个?>即可。

  1. /**
  2.  * WordPress 禁止UA为空或含有PHP的请求
  3. **/
  4. **/
  5. if(!is_admin()) {
  6.     add_action(‘init’, ‘deny_mirrored_request’, 0);
  7. }
  8. function deny_mirrored_request()
  9. {
  10.     $ua = $_SERVER[‘HTTP_USER_AGENT’];
  11.     if(!$ua || preg_match(‘/PHP/i’, $ua)) {
  12.         header(“Content-type: text/html; charset=utf-8”);
  13.         wp_die(‘请勿采集本站,因为采集的站长木有小JJ!’);
  14.     }
  15. }

3Nginx服务器版本

将以下规则加入到nginx的vhost当中 的配置文件的第一个location 之前,然后重载Nginx即可。

  1. if ($http_user_agent ~* “PHP”) {
  2. return 403;
  3. }

 

总结一下

根据使用情况来看,建议同时使用方法一和方法二,这样可以在禁止UA某些特征防止镜像失效的情况下,还可以通过借助img的oneerror事件防恶意镜像。最后强调一下,这些方法目前都是有效的,但是正所谓“道高一尺魔高一丈”,谁也无法保证这些方法能够长期有效。所以最有效的方法还是努力经营好自己的网站,把权重、流量、名气做上去,这样才能达成“一直被模仿,但从未被超越”的目标,到那时也就不怕什么恶意镜像了。除此之外还有很简单的方法可以防止网站被恶意镜像,北京SEO特别写了一篇《有效防止网站被恶意镜像解决方法》有兴趣的朋友可以去看下~

 

发表评论