用.htaccess实现图片防盗链。

流量有限,图片外链禁止。

所谓盗链,就是他人在未经本人你的同意之一,把你网站上面的资源诸如图片等一些文件的地址直接引用过去的一种行为。(呃,是这样的,囧)造成的影响就是一伤害了你的感情,因为他们没和你打招呼;二,伤害了你的服务器的感情,因为盗链在无形中增加了你服务器的流量,给服务器造成了负担,影响你网站的访问速度。

切入正题,其实图片防盗链的方法有很多,有直接通过网页程序编写的,再有就是通过对服务器端的设置。因为本人的主机是Linux主机,装的是Apache,而Apache下.htaccess文件可是非常的宝贝。大家可能都知道,URL的静态化就是通过编写Rewrite规则在这个文件里来实现的。具体的可以google之。或许以后我也会分享本人的经验。

继续回到正题。下面介绍实现此功能的步骤。因为.htaccess文件的影响范围是其所在的目录及其子目录,所以假想你想你有个图片文件夹称呼为images,那么就请毫不犹豫的把.htaccess文件放置到该目录下。呃,忘记了您可能还没建立此文档,- -.. Win用户只需右键,新建文本文档,然后存成.htaccess即可,并且去掉后缀.txt,Mac用户同理打开文本编辑软件存成此名字的文档。然后用任何文本编辑软件打开此.htaccess文件。要写些什么呢?

您可以参考以下代码:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !guaniu.com [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !qq.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !yodao.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !douban.com [NC]
RewriteCond %{HTTP_REFERER} !xiaonei.com [NC]
RewriteCond %{HTTP_REFERER} !mozilla.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) http://www.guaniu.com/pic/forbidden.jpg [R,NC,L]

然后我简单的介绍一下,以免一头雾水。

1.RewriteEngine on 的意思就是开启伪静态功能引擎,此句要有,不可省略。
2.RewriteCond %{HTTP_REFERER} !^$ [NC] 防盗链原理就是因为http标准协议中有个专门的字段记录referer,它一来可以追溯上一个入站地址是什么,二来对于资源文件,可以跟踪到包含显示他的网页地址是什么。这句话的意思是允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。
3.RewriteCond %{HTTP_REFERER} !guaniu.com [NC] 允许域名为guaniu.com的网站访问。其他句子同理。考虑到作为部落格的网站需要被那些feed供应商访问,所以你可以添加那些那站的允许规则,例如我的htaccess文件里添加了zhuaxia,feedsky,feedburner.com等。
4.RewriteRule .(jpg|gif|png|bmp|swf|jpeg) http://www.guaniu.com/pic/forbidden.jpg [R,NC,L] 当别人盗链你网站的.jpg,.gif,.png,.bmp,.swf,.jpeg文件的时候,自动替换图片为http://www.guaniu.com/pic/forbidden.jpg。
5.另外说明下R、NC 和 L的意思。
R 就是转向的意思
NC 指的是不区分大小写
L 的作用是指明本次转向到此结束,后续的转向不受先前判断语句的影响

好了。你的设置好了。我的讲演也完了。谢谢惠顾。

15 Responses to 用.htaccess实现图片防盗链。

  1. 牙。 says:

    = =
    潜水那么久。。。
    难得杀个花 😀

  2. NickyYe says:

    转成简体看舒服多了
    xd

  3. Leeiio says:

    @NickyYe:哈,那是,我们大陆从小教授的是简体汉字。

  4. Leeiio says:

    @牙。:呃,你说你那可怜的头像咩?

  5. xiaorsz says:

    已经把图片放别的服务网站了!
    不过现在用的图片好少了,图片多了慢!!
    不过博主的方法的确不错!! 🙄

  6. Leeiio says:

    @xiaorsz:有好的稳定的图床推荐么?其实我的空间是无限量大小的。。

  7. xiaorsz says:

    @Leeiio:大家一般用google的吧!感觉还可以,其它的我就不太清楚了,因为自己要存的图片也不是很多!!
    你无限量的?厉害,那速度还可以的话就放自己服务器上哈! 😡

  8. Leeiio says:

    @xiaorsz:国外主机,实在是担心速度问题啊,最近flickr在我这访问很慢,就把blog拖得死慢死慢。

  9. 牙。 says:

    = =杀个花的意思呢,就是沙发。。。
    我们果然有代沟啊~~

  10. 牙。 says:

    = =叔叔你没有ru沟。。。。

  11. 博译论 says:

    果然好看
    评论

  12. 蓝冰 says:

    我只知道用,不知道为何如此·!~

  13. wEixiNu says:

    😛
    现在的图片外链网站都有放外链功能,我用的是有照片。

Leave a Reply

Your email address will not be published. Required fields are marked *