镜像网站原理解析
物理中的镜像是指物体在镜面成像,引申到网络上就是克隆一个一模一样的网站。常见的镜像工作方式有下面几种: 第一种就是通过程序实时解析,举个简单例子,假设aaa.com这个网站是bbb.com的镜像地址,当用户访问aaa.com时,该站点的程序就会来bbb.com抓取页面信息然后返回给访问者,本质上还是读取源站的数据。 第二种就是利用仿站软件抓取所有页面保存为静态页面并部署到服务器上。 第三种就是恶意解析,例如对你网站进行反向代理。 上面两种概括了大概的镜像方式,具体实施根据需要调整,例如定时缓存等。
镜像网站的危害
别人镜像你的网站,说明你网站内容是原创的和有价值的,当然不排除恶意搞你的或者吃饱着撑得没事干的。镜像网站可能会替换掉一些内容并添加恶意链接,从而达到非法目的,并且这种镜像相当于是截获了我们在搜索引擎的流量,属于恶意镜像行为。对于新建立的网站来说,搜索引擎无法分辨到底哪个是源站,然后就会出现镜像站被收录,源站被删除收录的情况。 在搜索引擎里面采用intitle搜索指令搜索自己网站的完整标题,例如本站的就是:intitle PM 花语阁|清城花语江无月 然后看看有没有除了域名外和你内容差异不大的网站,如果有,那基本上可以确认你的网站被镜像了。
intitle是SEO中的高级搜索指令,intitle关键词指令返回的是页面title中包含关键词的页面。Goolge和百度都支持intitle指令。
恶意镜像解决方法
代码语言:javascript复制if (document.location.host != "bt.myltd.ltd" && document.location.host != "bt.myltd.ltd" ) {
alert('警告!检测到该网站为恶意镜像站点,将立即为您跳转到官方站点!');
location.href = location.href.replace(document.location.host,'bt.myltd.ltd');
}
将上面代码中的域名改为你网站的首页主地址。
代码语言:javascript复制//防止恶意HTTP_USER_AGENT采集
$ua = $_SERVER['HTTP_USER_AGENT'];
$now_ua = array('FeedDemon ','BOT/0.1 (BOT for JCE)','CrawlDaddy ','Java','Feedly','UniversalFeedParser','ApacheBench','Swiftbot','ZmEu','Indy Library','oBot','jaunty','YandexBot','AhrefsBot','MJ12bot','WinHttp','EasouSpider','HttpClient','Microsoft URL Control','YYSpider','jaunty','Python-urllib','lightDeckReports Bot','PHP');
if(!$ua) {
header("Content-type: text/html; charset=utf-8");
die('请勿采集本站,采集者木有小JJ!请正常访问!');
}else{
foreach($now_ua as $value )
if(eregi($value,$ua)) {
header("Content-type: text/html; charset=utf-8");
die('请勿采集本站,采集者木有小JJ!请正常访问!');
}
}
放在入口文件开头即可,但采用这种方法可能会误杀RSS订阅,自己根据需要调整UA头。
本文共 636 个字数,平均阅读时长 ≈ 2分钟