原文转自本人博客 - Ku_Andrew's Blog
CDN源站屏蔽搜索引擎爬虫
0x00 前言
自从去年全站使用阿里云CDN之后,网站访问速度得到了很明显的提升,同时阿里云CDN的稳定性也很棒。但最近这段时间发现,百度和谷歌的爬虫开始爬我的源站了。这就有点麻烦了,要是不赶紧解决,给主站降权就不好了。
0x01 思路
因为蜘蛛爬了不该爬的东西,解决思路自然是限制蜘蛛的爬取。
大概有三种方法可以限制蜘蛛的抓取:
1.robots.txt文件
robots文件用于限制搜索引擎蜘蛛的行为,在源站屏蔽蜘蛛主要是为了限制蜘蛛对同程序下不同域名的抓取。但是robots.txt文件没有可以限制域名相关的参数,只能限制蜘蛛对当前域名下文件的抓取,此路不通。
2.设置META标签
当访客访问的域名不是主站域名时,在网页的<meta>标签中植入限制蜘蛛活动的内容,实现起来比较简单,只用修改一下模板中的header文件即可。
3.识别蜘蛛的UA,在网站程序上做限制
获取访客的User-Agent,如果是搜索引擎蜘蛛的UA,则跳转至主站。也有一个问题,就是要去网上收集各家搜索引擎蜘蛛的UA,想着就累。
人懒,就选择设置META标签的方法。
0x02 实践
第一步,在程序中获取访客访问的域名。这一歩就不做多介绍了,不同语言和环境有不同的方法获取,PHP可以通过如下语句获取访问者当前访问的域名:
$_SERVER['SERVER_NAME'];
第二步,如果不为主站域名,则输出HEAD中的META标签限制蜘蛛的活动:
if ($_SERVER['SERVER_NAME'] != 'www.kungg.com' {
echo '<META NAME="robots" CONTENT="noindex,nofollow">';
}
0x03 大功告成
额,插不了图片。。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。