这样势必会增加原网站服务器的负担、流量等问题。老蒋在前几天也看到有不少的网站复制博客的文章,但是图片直接引用我这边的,当然也不会标注文章出处,好歹你也要把图片一起下载过去才行。出于这样的问题,我决定将网站服务器环境设置防盗链。当然,我一并将Nginx和Apache两个常用环境的图片防盗链方法一起分享。
第一、Nginx服务器图片防盗链规则
> location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
> expires 30d;
> access_log off;
> valid_referers none blocked *.itbulu.com server_names ~\.google\. ~\.baidu\.;
> if ($invalid_referer) {
> #return 403;
> rewrite ^/ http://img.itbulu.com/dao.jpg;
> }
> }
我们将修改当前站点的.CONF规则中,将修改和替换对于图片和流媒体的控制模块。我们可以直接将图片设置403不可见,也可以设置一个替代图片。同时,我们也需要允许百度、谷歌搜索引擎的抓取。
第二、Apache服务器图片防盗链规则
> # 开启Rewrite模块
> RewriteEngine On
> # 定义要保护的文件夹,建议只要保护上传文件夹(/wp-content/uploads/)就可以
> RewriteBase /wp-content/uploads/
> #允许空的来源,因为用户可能手动输入图片网址
> RewriteCond %{HTTP_REFERER} !^$ [NC]#允许自己的网站访问啦
> RewriteCond %{HTTP_REFERER} !itbulu.com [NC]#允许几个常用的在线阅读器的访问
> RewriteCond %{HTTP_REFERER} !google.com [NC]RewriteCond %{HTTP_REFERER} !baidu.com [NC]RewriteCond %{HTTP_REFERER} !feedsky.com [NC]#括号中的是要保护的文件拓展名,这里只保护了 gif,jpg,png,再加上出错时的图片地址
> RewriteRule .*\.(gif|jpg|png)$ http://img.itbulu.com/dao.jpg [R,NC,L]
修改我们网站所在的.htaccess文件。
这样,我们可以根据自己需要的网站服务器环境进行修改图片防盗链。