我们在泡论坛、写博客时,有时会直接引用其他网站里的一些图片,但有些比较“小气”的网站会阻止其他的网站引用它家的图片(模拟台词:放我服务器上的图片,占用我的服务器和带宽资源,凭啥给你免费用?),这就是所谓的“防盗链”技术。比如百度空间、QQ空间、新浪博客上的图片,你要转帖到其他论坛、博客,保证就显示不出来。
这是如何实现的呢?我想,可能会有一部分同学对这背后的技术有些好奇, 我们就在这儿简单地给大家扫扫盲,介绍其中一个方法。
假定PCD博客站想阻止其他网站盗链我们的图片(当然我们没那么小气)。PCD的博客服务器是采用的LAMP架构(之前博文有过介绍,详见http://www.pcdigest.com/2009/02/lamp/),网站的根目录里有个“.htaccess”文件,我们这里就不求甚解地不管它是如何起作用的,它起作用的条件是什么,只需要知道改改这个文件就能实现防盗链就行了。这个文件很小,可以用文本编辑器(比如记事本)打开和编辑,里面一般只有简单的几行代码。我们在这个文件里再加上这么2行代码:
RewriteCond %{HTTP_REFERER} !^http://www.pcdigest.com/.*$ [NC] RewriteRule .*\.(jpg|jpeg|bmp|rar)$ http://www.pcdigest.com/buyao.gif [L]
代码解释:
当来路不是http://www.pcdigest.com时,不允许链接PCD网站上的jpg、jpeg、bmp、rar后缀的文件,并将文件链接重新指向buyao.gif图片文件(我们可以在buyao.gif图片上写上“此图片、文件来自www.pcdigest.com”之类的版权声明)。 如果你允许多个网站链接图片时可以增加多行。
是不是看起来很简单,一点不神秘,也很好玩?当然,实现防盗链的方法还有其他很多种,这里涉及的背后的技术也足够写上几本书。 本文能略微满足某些人好奇心的作用即达到目的。 |