今天在V2EX上摸鱼,无意间进了蚊子的博客,正好看到一篇文章《博客被全站抓取了》,回想起自己的网站也遇到了这种情况,就顺便评论了下,为了预防以后遇到这种情况,以及能有完整的处理流程,记录下这篇文章。
一、怎么知道网站被镜像
1、网站统计
一般都有规律性的看百度统计或者Google Analytics,会发现非自己域名的统计信息。
2、搜索完整标题或者网站名称
一般会出现非自己域名的网站,打开后内容和字的一模一样,当你进行修改后,对方会进行即时同步。
二、网站镜像对于网站的危害!
一套程序实时抓取你的网页,当你有内容更新,它也会进行更新,从而让百度分不清哪个是真实网站,可能就会优先收录镜像网站的页面,从而你的站点内容,百度 就不认为是原创文章,从而把排名都偏移到镜像的网站中。因为你每天更新的内容都会被镜像网站盗取,从而优先收录,一般来说镜像网站都是老域名,对于收录都有绝对的优势,所以你的排名就会逐渐下滑,对你的网站影响是非常大的,所以我们要去解决这个问题,索性镜像网站的手法并不高明,解决起来并不麻烦。
三、解决方法
1、了解镜像远离
镜像网站是实时抓取你内容的,如果你网站更新了某个内容,通过镜像网站访问,镜像网站都是可以抓取到的,比如你知道了镜像的域名,然后你的网站中更新了一个“1.txt”你用镜像域名/1.txt,也是 可以访问到的,所以我们知道了这个原理后,就比较好解决了。
2、获取镜像网站的IP段地址
一般镜像网站都是会变换IP的,但是一般都是后两段变换,前两段都是固定的,一般都是192.168.*.* 这段IP中的*号,就是经常变换的,但是只要知道前面两段固定IP,我们就可以利用通配符进 行屏蔽,下面是测试IP的方法。
复制如下代码,新建一个 php 文件,并命名为“ip.php”上传到你的网站根目录。
<?php $file = "ip.txt"; //保存的文件名 $ip = $_SERVER['REMOTE_ADDR']; $handle = fopen($file, 'a'); fwrite($handle, "IP Address:"); fwrite($handle, "$ip"); fwrite($handle, "n"); fclose($handele); ?>
然后利用镜像的域名/ip.php 这个时候你的网站根目录就会生成一个ip.txt,里面就是镜像网站的IP 地址,一定要记住,多访问几次,查出镜像网站的IP端。
3、屏蔽IP段地址
如果你是安装了一些防护工具,你可以直接在进行IP段的屏蔽!
如果你是Apache环境,你直接在.htaccess 文件中添加屏蔽IP代码!
RewriteEngine On #Block ip RewriteCond %{http:X-Forwarded-For}&;%{REMOTE_ADDR} (112.113.*.*) [NC] RewriteRule (.*) - [F]
上面的112.113.*.* 就是需要屏蔽的IP地址!*代表通配符!
如果你是Nginx环境,在伪静态中添加屏蔽代码即可!
deny 112.0.0.0/8; 屏蔽后三段通配IP
deny 112.113.0.0/16;屏蔽后两段通配IP
deny 112.113.150.0/24; 屏蔽后一段通配IP
根据自己的情况去写就可以了,我写的是屏蔽后两段通配IP!
四、如何预防被镜像
1、宝塔
一键开启防护,这个功能一般都是免费的。
2、网站启用HTTPS
可以防止部分程序镜像我们的网站
3、网站内调用防镜像代码
代码如下:
host = window.location.host; var site= "www.lanka.cn"; if (host!=site ) { alert(window.location.host+':为非法镜像网站,为了您的安全正在带您回到原网站'); location.href='http://'+site+window.location.pathname; }
把上边代码,保存成JS文件,然后在首页<script src="/你保存的文件名称.js"></script>代码调用。
评论已关闭