前几天搜索网站品牌词“思享SEO”,发现网站被镜像了。就是指别人复制了一个和我一模一样的网站。今天我们就来谈一谈网站被镜像危害及解决办法。
网站被镜像的危害
镜像是怎么实现的没有去研究过。我的网站被镜像,URL都替换成掉了,且统计、推送JS文件也删除了等等。我想,既然百度会收录这样的镜像站点,就证明对于镜像和原站的识别,百度依然不能做到百分之百。而镜像站点的更新和主站是同步的,不管是混肴用户还是搜索引擎,都会给网站带来伤害。
网站被镜像的解决办法
解决被镜像的方法就是屏蔽镜像站的IP地址。我是直接通过站长工具查询到的,然后在(我的是Apache).htaccess添加
RewriteEngine On ##Block ip RewriteCond %{http:X-Forwarded-For} (211.104.158.56) [NC] //其中IP地址按照自己修改 RewriteRule (.*) – [F]
注意要添加在# END WordPress和# BEGIN WordPress之外
或者还可以通过插件屏蔽,我没试过~
这里,也提供一个网上找到的方法
获取IP
<? $file = "ip.txt"; //保存的文件名 $ip = $_SERVER['REMOTE_ADDR']; $handle = fopen($file, 'a'); fwrite($handle, "IP Address: "); fwrite($handle, "$ip"); fwrite($handle, "\n"); fclose($handle); ?>
屏蔽IP
在htaccess中添加下述代码:
Deny from 211.104.158.56
当你再次用镜像网址访问你的网站的时候就会报403错误了,现在百度即使收录了这个网址对你的网站也不会产生任何影响.
反制措施
?为了给这个镜像网站小小的“反击”,我决定把这个403错误页面设置为其他网站网址,实现方法是在屏蔽IP的htaccess代码中添加:
ErrorDocument 403 http://news.baidu.com/
这样你访问你的镜像网址时,会发现它镜像的是其实百度新闻。(不知道百度蜘蛛发现一个网站在完全抄袭自己家的东西会是什么感觉)
PS,但是我测试结果却仅仅是302重定向到百度新闻而已~所以,反制措施可有可无。
百度举报
近日发现一个镜像站点,屏蔽IP也无效,在百度站长平台找了好久,找到的回答是通过快照举报删除,但实际一周前的举报,至今仍未处理。
大家如果有什么比较实用的方法,欢迎讨论
20160910更新
Js被屏蔽后防止镜像的方法
将以下代码加到网站的header.php中:
<div style="display:none;">
<script>proxy2016 = false;</script>
<img src="" onerror='setTimeout(function(){if(typeof(proxy2016)=="undefined"){window.location.host="https://www.4xseo.com";}},3000);'>
</div>
有些网站会屏蔽掉JS代码(如下面的代码) :
<script>...</script>
所以 代码将被过滤掉,img的onerror设置超时时间3000毫秒,将运行函数部分,检测是否还存在proxy2016字符,如果没有找到就会将主机的URL改为https://www.4xseo.com;为了安全起见,将js部分(代码下划线部分)可以使用js代码混淆
JS对比跳转
通过拆分域名链接与镜像站比对,然后用img标签src空值触发onerror来执行js比对,比对失败则跳转回源站。
代码如下:(复制粘贴到主题的functions.php中)
add_action('wp_footer','kimsom_reverse_proxy_defense'); function kimsom_reverse_proxy_defense(){ $domain_arr = explode('//',home_url()); $domain = $domain_arr[1]; echo '<img style="display:none" id="inlojv-rpd" src="nothing" data-url="'.home_url().'" onerror="var str0=document.getElementById(\'inlojv-rpd\').attributes.getNamedItem(\'data-url\').nodeValue;var ishttps=\'https:\'==document.location.protocol?true:false;if(ishttps){var str1=\'https\'+\'://\';}else{var str1=\'http\'+\'://\';}var str2=\''.$domain.'\';var str3=str1+str2;if( str0!=str3 ){alert(\'\u8b66\u544a\uff01\u68c0\u6d4b\u5230\u8be5\u7f51\u7ad9\u4e3a\u6076\u610f\u955c\u50cf\u7ad9\u70b9\uff0c\u5c06\u7acb\u5373\u4e3a\u60a8\u8df3\u8f6c\u5230\u5b98\u65b9\u7ad9\u70b9\uff01\');if (!!(window.attachEvent && !window.opera)){document.execCommand(\'stop\');}else{ window.stop();}var str4=\'wind\'+\'ow.loca\'+\'tion.rep\'+\'lace(str3)\';eval(str4);}">'; }
添加以上代码之后,再打开镜像站就会弹出提示:“警告!检测到该网站为恶意镜像站点,将立即为您跳转到官方站点!”,并在关闭或确定此提示后直接跳转到被镜像的网站。目前博主也是用的这个方法
转载请注明:思享SEO博客 » wordpress网站被镜像的危害及处理办法