在Apache服务器的前提下利用.htaccess文件来防盗链的原理是通过检查图片或文件请求头信息中的Referer属性(也就是请求的来源),判断它是否属于你所规定的合法的请求来源,从而实现让合法来源能够获得请求的图片或文件、不合法的请求被转向到另一个指定的链接(通常是盗链提示的图片,并且尽量控制该文件大小从而降低流量损耗)。

  • 具体的做法是在.htacess文件中添加类似以下几行的代码
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 所代表的文件。

RewriteRule .*\.(jpg|gif|png|jpeg)$ http://www.oursmemory.com/favicon.ico [R,NC,L]

5.补充说明一下:R,NC,L的含义

R:转向

NC:不区分大小写

L:本次转向到此结束,后续的转向不受先前判断语句的影响

原文链接:简单技巧之Apache下利用.htaccess防盗链小结

Apache -- 利用.htaccess防盗链的更多相关文章

  1. .htaccess防盗链方法(文件、图片)

    http标准协议中有专门的字段记录referer,一来可以追溯上一个入站地址是什么,二来对于资源文件,可以跟踪到包含显示他的网页地址是什么. 因此所有防盗链方法都是基于这个Referer字段两种方法: ...

  2. The server of Apache (四)——配置防盗链和隐藏版本信息

    一.防盗链 防盗链就是防止别人的网站代码里面盗用我们服务器的图片.文件.视频等相关资源,比如我们的网页的图片有链接,别人把链接复制粘贴到他们的服务器页面里,图片不在他们自己的网站里,每次打开他们的网站 ...

  3. apache利用.htaccess实现部分页面301

    由于网站改版,对访问url进行了改进 原:http://www.tutufu.com/w_weifenlei/DeHaiZi_38251/ 现:http://www.tutufu.com/unclas ...

  4. [Java][Web]利用 referer 防盗链

    String referer = request.getHeader("referer"); if(referer == null || !referer.startsWith(& ...

  5. 使用Apache的.htaccess就可以防盗链

    Apache的.htaccess可以实现很多功能,如密码保护.禁止显示目录列表.阻止/允许特定的IP地址.实现网址的301 重定向等等.本文就来说说使用Apache的.htaccess如何防盗链. 当 ...

  6. Code笔记 之:防盗链(图片)

    图片防盗链   参考:http://bbs.csdn.net/topics/330080045    应该是”10种图片防盗的方法“,而不是”10种图片防盗链的方法“,不过看搜索防盗链的人要多一点,所 ...

  7. htaccess高级应用:防盗链阻止迅雷下载以及限制访问

    导读: 合理利用htaccess文件,即使没有服务器的管理权限可以解决很多问题:比如用htaccess防盗链,阻止迅雷下载,限制用户访问指定类型的文件.判断User-agent阻止迅雷下载. Rewr ...

  8. apache .htaccess 伪静态重定向,防盗链 限制下载...

    301全站跳转 RewriteEngine OnRewriteCond %{HTTP_HOST} ^www\.old\.net$ [NC]RewriteRule ^(.*)$ http://www.n ...

  9. Apache 隐藏入口文件以及防盗链.htaccess 文件

    Apache 隐藏入口文件以及防盗链.htaccess 文件 RewriteEngine on # 隐藏入口文件 RewriteCond %{REQUEST_FILENAME} !-d Rewrite ...

随机推荐

  1. POJ - Problem 1275 - Cashier Employment

    · 对于差分约束,题目要求求什么便设什么,令$Sum[i]$表示由$0 ~ i$的雇佣人数. · 要充分利用题目所给条件,令$Have[i]$表示i时刻申报的人数,$Need[i]$表示i时刻需要的人 ...

  2. 10.python3标准库--加密

    ''' 加密可以保护消息安全,以便验证其正确性并保护消息不被截获. python的加密支持包括hashlib和hmac,hashlib使用标准算法生成消息内容签名,hmac则用于验证消息在传输过程中未 ...

  3. SPOJ D-query(莫队算法模板)

    题目链接:http://www.spoj.com/problems/DQUERY/ 题目大意:给定一个数组,每次询问一个区间内的不同元素的个数 解题思路:直接套莫队的裸题 #include<cs ...

  4. linux下redis的安装与部署

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多 ...

  5. 关于Android不同系统版本的市场占比情况详解

    一,google官方统计的不同Android版本市场的占比强开 google统计的数据情况 这个是google官方对于不同版本的市场占比情况.这个是针对全世界所有的Android手机占比情况. 二,友 ...

  6. numpy,看不懂,但很利害

    慢慢有感觉.. 截几个图看看. import numpy as np np.random.seed(42) complex_numbers = np.random.random(5) + 1j * n ...

  7. MySQL增删改数据

    1.增加数据 ,); /*插入所有字段.一定依次按顺序插入--字符串与日期需要加单引号,数字不需要,各个字段之间用逗号分隔*//*注意不能少或者多字段值*/ ,) /*按字段名插入数据,中间用逗号隔开 ...

  8. git团队开发

    用git有一年了,下面是我这一年来的git使用总结,覆盖了日常使用中绝大多数的场景.嗯,至少是够用一年了,整理出来分享给大家,不明白的地方可以回复交流. git设置关闭自动换行 git config ...

  9. day6 os模块

    OS模块 提供对操作系统进行调用的接口     (1)os.getcwd()   获取当前工作目录,即当前python脚本工作的目录路径 >>> os.getcwd()     获取 ...

  10. Linux性能工具

    Brendan Gregg 目前是 Netflix 的高级性能架构师 ,他在那里做大规模计算机性能设计.分析和调优.他是<Systems Performance>等技术书的作者,因在系统管 ...