摘要:在查看网站的百度搜索收录情况时,意外发现自己的网站被恶意镜像了,而且他的排名已经仅次于源站,我通过借助 Img 的 Onerror 事件来解决此问题。

早上在查看网站的百度搜索收录情况时,意外发现自己的网站被恶意镜像了,而且他的排名已经仅次于源站,真是让我大吃一惊。

什么是恶意镜像?

恶意镜像,也叫恶意克隆,恶意解析,是指有人通过域名A记录直接解析你的IP地址上,从而得到一个在访问者眼中与你完全相同网站的过程。通俗点讲,除了域名不一样之外,其他内容一模一样,用户根本无法分辨。

如何知道自己的网站是否被镜像

在百度搜索时直接搜索网站的标题,如搜索:醒悟的凡灵, 如果有其他网站的网站标题、描述及网站内容跟你的一样,只有域名不一样,那就是被镜像了。

我用百度搜索发现 624y.com 恶意镜像了我网站,而用 Google 搜索,又发现了 maqingxi.xyz 恶意镜像了我网站。

网站被恶意镜像对有什么影响?

虽然目前还不知道他们恶意镜像我的网站到底有什么意图,但肯定对我们没什么好处,一是对自己网站在搜索引擎的排名不利,有些恶意镜像的排名比源站还高,会造成源站被搜索引擎降权;二是如果他这个域名有点什么不健康的信息,那么我们被镜像的站点有可能被污染掉,可能会导致受害者IP被封掉。

网站被恶意镜像怎么办?

从网上搜索了多个解决办法,逐一测试了,有了已经失效,有了自己网站都打不开,有的网站闪退了,最后采用了龙笑天下的方法,借助 Img 的 Onerror 事件,通过拆分域名链接与镜像站比对,然后用 img 标签 src 空值触发 onerror 来执行 js 比对,比对失败则跳转回源站。

代码如下:(复制粘贴到主题的 functions.php 最后一个?>之前)

/**
* 网站被恶意镜像怎么办 一段代码轻松搞定(全面版) - 龙笑天下
* https://www.ilxtx.com/mirrored-website.html
* 最后更新时间:20171022    发布时间:20160912
* 出自:zhangge.net
*/
add_action('wp_footer','lxtx_deny_mirrored_websites');
function lxtx_deny_mirrored_websites(){
    $currentDomain = 'www" + ".ilxtx." + "com';
    //  $currentDomain = '"zhangge." + "net"';
    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) }\' />';
}

注意,代码中,’www” + “.ilxtx.” + “com’需要自行修改成自己的域名。

至此,浏览恶意镜像网站,会自动跳转回我的网站。不知道搜索引擎的结果中,收录的恶意镜像什么时候能被消除掉。

历史上的今天: