防盗链的原理是利用http协议发过来的包中的referer信息来实现的。
referer就是你访问的网址的上一个网址。也就是你离开的地址。
通过检测你的上个地址是不是自家的网站,从而应用防盗。
在配置文件中写入
1 SetEnvIfNoCase Referer "^http://.*\.dxjun\.cn" local_ref
2 SetEnvIfNoCase Referer ".*\.test\.cn" local_ref
3 SetEnvIfNoCase Referer "^$" local_ref
4 <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png|js|css)">
5 Order Allow,Deny
6 Allow from env=local_ref
7 </filesmatch>
规则中也可以直接写入http://www.dxjun.cn这种地址,但如果要在各种apache版本中通用的话,最好就用通用的写法
可以添加多条规则,就像1,2 行.第三行表示允许空referer(就像是直接在浏览器中输入地址,他没有上个地址,referer为空)。
第4行防盗的文件后缀。
5,6行配置让防盗生效。必须要。
另外需要说明的是白名单的格式:SetEnvIfNoCase Referer "^http://.*\.dxjun\.cn" local_ref 在dxjun的前面的\.表示是前面必须要存在字符。这个\.(一个转义字符)就是说在dxjun前面有一个.,在点前面是通配,也就是说是一个二级域名(www也是二级)。
如果使用这样的规则,则表示www.dxjun.cn是可以正常使用的。而dxjun.cn则会被认为是盗链。要达到dxjun的前面可以存在,也可以不存在。把\.删掉就好了。
改好了之后不要忘了apachectl -t检测一下配置文件是否有误。然后apachectl restart或者apachectl graceful使配置生效。
本文出自 “源末” 博客,请务必保留此出处http://11157507.blog.51cto.com/11147507/1745285
原文地址:http://11157507.blog.51cto.com/11147507/1745285