需求案例,有人直接取走你站点的图片链接地址,比如图片地址www.123.com/images/111.jpg,那么他就可以直接把这个地址放到他自己的网站上,他的用户可以直接从他网站查看该图片,而实际上浏览这个图片是从你网站访问,该图片产生的带宽消耗对于你来说没有任何意义,毕竟看图片的客户不是你的客户,而是人家的。那我们应该想到,把这些图片限制一下,凡是在第三方站点上,严禁访问你站点的图片,配置如下:
#通过限制referer来实现防盗链的功能 #配置文件增加如下内容 #在模块外设置规则,模块内设置如何执行规则 <Directory /data/wwwroot/www.123.com> SetEnvIfNoCase Referer "http://www.123.com" local_ref SetEnvIfNoCase Referer "http://123.com" local_ref SetEnvIfNoCase Referer "^$" local_ref <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> Order Allow,Deny Allow from env=local_ref //设置白名单,允许这些站点,其他的全部Deny </filesmatch> </Directory>
测试: curl -e "http://www.qq.com/123.txt" 其中-e可以指定referer
refer其实就是上次访问的网站链接。