Apache防盗链的使用

方法一,直接在apache设置通过Referer判断是否允许访问。

SetEnvIfNoCase Referer "^(ssl|http|https)://(.+\.)?yourdomain\.com" local_ref=1
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
  Order Allow,Deny
  Allow from env=local_ref
</filesmatch>

经测试,这段代码会有一点问题,在IOS上的Safari,播放html5的音频视频的时候,是不能正常播放的。我猜可能是,IOS上的Safari在播放HTML5媒体时,调用的是客户端的播放器,是会不发送Referer的。

加上这一段代码即可解决:

SetEnvIf Referer "^$" local_ref=1

当然,每一段代码都是双刃剑,这样设置允许了空来源后,用户就可以把要下载的文件地址复制后直接粘贴并转到这个地址就可以下载了。但懂这样做的用户毕竟少,还是杜绝了大部分用户去盗链下载我的MP3导致服务器负荷增高的可能性了

方法二,设置Rewrite(未经测试,转贴以备用)

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yourdomain\.com/.*$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://yourdomain.com/nolink.png [R,NC]

Leave a Reply

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