很多小伙伴都在使用七牛 cdn 来加快网站的访问速度,尤其是七牛的静态文件镜像功能更是非常方便的帮站长把网站本地的静态文件同步到七牛的 cdn 服务器上,不过呢很多小伙伴在使用七牛的 cdn 镜像一段时间之后都发现网站莫名其妙的被百度降权了,才发现原来七牛的镜像功能会把网站的 html 内容也镜像到七牛上,这样一来就相当于七牛上存在一个镜像站点,对于 SEO 来说是非常不友好的,所以也就造成大量使用了七牛镜像功能的网站被百度降权。当时爆出这个问题的时候七牛官方给出了一个处理方法,就是上传 robots.txt 来禁止爬虫抓取镜像站点,不过小编觉得这种方法完全是治标不治本的方法,下面小编给出一个比较合理的处理方案:

通过 UserAgent 来屏蔽七牛镜像爬虫对网页文件的抓取,代码如下:

if( strpos($_SERVER['HTTP_USER_AGENT'],'qiniu-imgstg-spider') !== false) {
header('HTTP/1.1 503 Service Temporarily Unavailable');
echo '防七牛镜像';
exit;
}

将以上代码加到网站根目录呃 index.php 文件的<?php 之后即可,或者加到主题的 functions.php 文件也行,这段代码不仅仅是 WordPress 程序可用,任何 php 的程序都能用来处理七牛 cdn 镜像造成的网站被镜像文件。

加上以上代码,七牛 cdn 的镜像爬虫再来镜像网页文件就会返回 503 状态:

直接访问镜像站点,效果图:

日志中的记录:

防止七牛镜像降权

由于只是在 php 上做限制所以不影响其他静态文件的镜像加速~~。

2014.11.13 补充

使用了 WP Super Cache 插件的小伙伴请将七牛的 ua 加入到禁止缓存列表中,如下图:

(PS:如果之前已经被七牛镜像了,请先清空七牛的缓存,或者添加代码后更新缓存~~)