在Apache服务器的前提下利用.htaccess文件来防盗链的原理是经过检查图片或文件请求头信息中的Referer属性(也就是请求的来源),判断它是否属于你所规定的合法的请求来源,从而实现让合法来源可以得到请求的图片或文件、不合法的请求被转向到另外一个指定的连接(一般是盗链提示的图片,而且尽可能控制该文件大小从而下降流量损耗)。html
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !purplesecond.com [NC] RewriteCond %{HTTP_REFERER} !google.com [NC] RewriteCond %{HTTP_REFERER} !baidu.com [NC] RewriteRule .*\.(jpg|gif|png|jpeg)$ http://www.oursmemory.com/favicon.ico [R,NC,L]
1. 开启重写功能浏览器
RewriteEngine on
2. 下面这句代码是使当在浏览器地址栏中直接输入图片或文件的地址时,访问者可以得到请求的文件。通常来讲,咱们是容许这么作的,但若是你非要禁止访问者直接输入网址访问图片或文件,你能够不加这条,但这可能致使访问者在经过代理访问时即便在站内发出图片或文件请求时,也会发生没法请求的问题,具体状况我也不清楚,你们能够去查看相关资料。服务器
RewriteCond %{HTTP_REFERER} !^$ [NC]
3. 这三条代码的做用是让三条中说起的网站在请求本站的图片或文件时,不会受到后述的重写设置,即这三个网站属于白名单。网站
RewriteCond %{HTTP_REFERER} !purplesecond.com [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
4. 这条表示对符合上述条件的HTTP_REFERER应用本条重写规则,让全部未在白名单以内的网站在访问本网站的jpg,gif,png,jpeg文件时,都会被返回http://www.oursmemory.com/favicon.ico 所表明的文件。ui
RewriteRule .*\.(jpg|gif|png|jpeg)$ http://www.oursmemory.com/favicon.ico [R,NC,L]
5.补充说明一下:R,NC,L的含义google
R:转向spa
NC:不区分大小写代理
L:本次转向到此结束,后续的转向不受先前判断语句的影响code
原文连接:简单技巧之Apache下利用.htaccess防盗链小结htm