.htaccess防止图片和下载盗链

2011年2月9日 发表评论 阅读评论

闪电博客有点无奈,网上现在太狠了,直接把我的图片文章全部copy,图片的流量消耗不起,所以设置了图片防盗链。另外该方法也可以防止音乐、pdf、zip和rar等各种文件下载外链的盗链接。

讲防盗链之前,先补充一些htaccess的基础知识。htaccess就是名为.htaccess的文件(没有主名),一般保存在根目录下,即public_html目录下,为了安全,请不要把它的权限设置为777。

一般修改htaccess文件就是新建个文本文档,打好内容,然后以a.htaccess等文件名用FTP,以二进制方式上传,上传后再改为.htaccess。

第一行:
RewriteEngine on
这个是必须的~
由于其他网站盗链后要转接到一个错误图片文件,所以保存那个图片的文件夹一定要允许盗链
RewriteCond %{REQUEST_URI} ^/【允许的文件夹名】
RewriteRule ^.*$ – [L]
接着,设置不允许盗链的文件类型
RewriteCond %{REQUEST_FILENAME} \.(gif|jpg|png)$ [NC]
中间的的gif,jpeg可以修改为要防盗链的类型,其他如音乐、pdf、rar、zip等文件类型均可以。
RewriteCond %{HTTP_REFERER} !^$
上面这一行意在允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。
RewriteCond %{HTTP_REFERER} !shandian.biz [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !image.baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !www.ask.com [NC]
RewriteCond %{HTTP_REFERER} !www.163.com [NC]
RewriteCond %{HTTP_REFERER} !www.yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !www.sogou.com [NC]
RewriteCond %{HTTP_REFERER} !www.soso.com [NC]
RewriteCond %{HTTP_REFERER} !www.sina.com.cn [NC]
RewriteCond %{HTTP_REFERER} !www.msn.com [NC]
RewriteCond %{HTTP_REFERER} !www.feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !www.feedburner.com [NC]
设置允许外链的网址,记得要设置自己的网址允许“盗”链
RewriteRule (.*) /dirname/kissmyass.jpeg[R,NC,L]
最后,设置盗链的转向地址。

注意
RewriteCond %{HTTP_REFERER} !www.baidu.com [NC]
上面这句和下面这句少3个w
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
是有区别的,下面这句,百度的子域名如百度空间hi.baidu.com也是允许盗链,而第一句必须是www.baidu.com,如果允许百度图片搜索,则设置成:
RewriteCond %{HTTP_REFERER} !image.baidu.com [NC]

以下是闪电博客设置的防盗链代码,你可以根据需要修改:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/err
RewriteRule ^.*$ – [L]
RewriteCond %{REQUEST_FILENAME} \.(gif|jpg|png)$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !shandian.biz [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !image.baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !www.feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !www.feedburner.com [NC]
RewriteRule (.*) /err/err.jpeg [R,NC,L]

效果请看:
图片防盗链测试

至此,反盗链就OK了,最后提醒一句,如果修改后出现HTTP 500错误,请立即删除.htaccess文件,并检查代码内容,还有,盗链后跳转到的图片一定不要太大,否则就起不了作用了。


转载请注明来自:[闪电博客]http://shandian.biz/268.html

分类: 建站教程 标签:
  1. 小俊
    2011年2月9日23:34 | #1

    不错啊 ··继续··