最近发现,博客总是被别的网站盗链,图片消耗了大量的网络流量,那么怎么防止盗链呢?很简单,为服务器加上hotlink protection(盗链保护)配置。
Nginx服务器防盗链配置
我自己采用的是nginx服务器,所以先讲nginx服务器的防盗链配置(hotlink protection),首先准备一张版权声明图片
方法一:nginx文件后缀名配置防盗链(亲测有效)
1 2 3 4 5 6 7 8 9 |
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; valid_referers none blocked vjson.com *.vjson.com youdao.com *.youdao.com google.cn *.google.cn google.com *.google.com *.google.com.tw *.google.com.sg *.google.com.hk *.bloglines.com *.soso.com *.bing.com image.baidu.com *.baidu.com *.iteye.com iteye.com csdn.net; if ($invalid_referer) { rewrite ^/ http://i13.tietuku.com/a363e9fbf18f7448.jpg; #return 404; } } |
语法:首先先把vjson.com替换为你的域名,否则自己的站点也会被拦截
expires:表示过期时间,这里配置的是30天,这个配置与防盗链无关。
valid_referers:有效的reffers
none:意为不存在的Referer头。比如从浏览器直接输入url。
blocked:意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。
server_names: 以空格隔开的来源域名白名单,可以支持通配符。这里注意将谷歌和百度的域名加入白名单,不然会影响搜索引擎的收录。
(gif|jpg|jpeg|png|bmp|swf),这些是文件后缀,根据自己站点的情况添加。
接下来的逻辑判断如果不是白名单的reffer,那么就302跳转到版权说明的图片(注意:这张图片不能放在自己的站点下面,否则302跳转又回到你自己的站点了,会导致循环跳转),所以我将这个图片放到一个免费的图床1365tu
方法二:nginx配置目录防盗链(没有自测)
1 2 3 4 5 6 7 8 |
location /images/ { expires 30d; valid_referers none blocked vjson.com *.vjson.com youdao.com *.youdao.com google.cn *.google.cn google.com *.google.com *.google.com.tw *.google.com.sg *.google.com.hk *.bloglines.com *.soso.com *.bing.com image.baidu.com *.baidu.com *.iteye.com iteye.com csdn.net; if ($invalid_referer) { rewrite ^/ http://i13.tietuku.com/a363e9fbf18f7448.jpg; #return 404; } } |
这种方式可以针对某一个目录进行防盗链配置,并且可以不使用图床,只需要将版权说明图片放入到站点的其他目录就可以
Apache服务器防盗链配置(没有自测)
Apache支持.htaccess所以只需在.htaccess文件中加入如下类容
1 2 3 4 5 6 |
RewriteBase /wp-content/uploads/ RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !vjson.com [NC] RewriteCond %{HTTP_REFERER} !google.com [NC] RewriteCond %{HTTP_REFERER} !baidu.com [NC] RewriteRule .*\.(gif|jpg|jpeg|png|bmp|swf)$ http://i13.tietuku.com/a363e9fbf18f7448.jpg [L] |
看了前面的nginx防盗链配置应该能够看懂,所以不做解释了。
测试
配置好之后注意重启服务器,清除浏览器缓存(一定要确保清理干净),如果你采用了百度云加速之类的节点加速服务,那么要清理cdn缓存(免费服务不能立即生效,耐心等待一会儿)。最后用一张图片来测试,过几天去盗链网站看看是否生效。如果一切顺利的话,下面这张图片,将会重定向到版权声明图片
经过几天耐心的等待文章果然被爬虫抓取了,我把盗链的网站贴出来叫电脑玩物