总算搞定空间的防盗链

每次看着自己空间的流量刷刷刷的流失都有些心痛,分析最近的访问发现都是一些未知链接,为了减少空间流量的无效流失,决定部署防盗链功能,需要显示图片或提供下载的转载者需要到本站下载相关内容到自己的空间上方能正常使用,这间接的打击了那些转载不留来源的“二”们。

方法其实挺简单,不过我在操作过程犯了一些小错误导致在这上面花了不老少时间。

原理就是在对应目录下增加一个.htaccess文件,用于控制访问的权限,如果不支持.htaccess的空间请就此跳过。

我自己配置的文件源码:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !lordong.cn [NC]
RewriteCond %{HTTP_REFERER} !lordong.net [NC]
RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
RewriteCond %{HTTP_REFERER} !x10hosting.com [NC]
RewriteRule .*\.(gif|jpg|png|mp3|flv|zip|rar|swf)$ http://lordong.me/images/error.gif [R,NC,L]

我在设置过程中犯过的错误是:

1. 想不提供图片直接把上面代码最后一行的图片改成“-”,没有改后面的中括号里的内容所以导致失败,正确方法应该是(注意中括号里是“F”而不是“R”):

RewriteRule .*\.(gif|jpg|png|mp3|flv|zip|rar|swf)$ - [F,NC,L]

2. 想把图片和下载的文件分开,然后写成两行,第一行没有“L”第二行加上“L”,实际测试下来第二行没有工作,不知道为什么,所以最后直接放到同一行上。

还有一点要注意的是,所提供的防盗链的转向文件不能放到加了防盗链的同一目录下,否则陷入死循环。比如我控制media子目录防盗链,防盗链的转向图片放在images目录下,该目录不加防盗链。

2011-03-13 Updated: 发现如果空间中放有MP3等这类大流量的文件,还是把第一行“RewriteCond %{HTTP_REFERER} !^$ [NC]”前加“#”注释掉为妙,不然那些下载工具就可以直接获取数据,流量很快就流失了。

Tags:

Leave a Reply


提醒: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。