isapi_rewrite的防盗链使用方法与规则代码

httpd.ini设置如下: 
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /Block.gif [I,O]

即可实现gif/jpg/png/exe/rar/zip文件的防盗链,盗链页面显示的是/Block.gif。Block.gif是一个体积较少的图片文件,我们可以在上面打上自己网站的版权标志和防盗链声明。
如果按照上面设置,则除本站以外的所有网站均不能使用这里的图片,如果要允许一些例外的网站比如google,baidu以及其它一些非营利性网站引用该怎么办呢?我们可以用如下正则表达式来实现

RewriteCond Referer: (?!http://(?:.*\.google\.com|www\.baidu\.com)).+

如果想需要给友情站使用,则可以如下设置:

RewriteCond Referer: (?!http://(?:*\.pspper\.net|*\.google\.com|*\.baidu\.com)).+

至此,一个相当有效的防盗链系统已经出来了,但如上设置有一个问题,如果浏览者浏览了盗链页面后访问本站页面,则被盗链图片的缓存会影响图片的正常显示。把

RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]

改为

RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O,N]

方可。参数N的意思是重新从站点请求文件而不是从本地缓存读取。
注意,由于流媒体不使用Referer,所以无法用此方法。

(0)

相关推荐

  • isapi_rewrite的防盗链使用方法与规则代码

    httpd.ini设置如下:  RewriteCond Host: (.+) RewriteCond Referer: (?!http://\1.*).* RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /Block.gif [I,O] 即可实现gif/jpg/png/exe/rar/zip文件的防盗链,盗链页面显示的是/Block.gif.Block.gif是一个体积较少的图片文件,我们可以在上面打上自己网站的版权标志和防盗链声明. 如果按照上面设置,则

  • Nginx和Apache几种防盗链配置方法实例

    要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫 referer,采用URL的格式来表示从哪儿链接到当前的网页或文件.换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源 文件,则可以跟踪到显示它的网页地址.有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返 回指定的页面. Nginx防盗链的配置 1.nginx针对文件类型的防盗链配置

  • php实现图片文件与下载文件防盗链的方法

    本文实例讲述了php实现图片文件与下载文件防盗链的方法.分享给大家供大家参考.具体分析如下: 在php中最简单的防盗链办法就是利用php的$_SERVER['HTTP_REFERER']函数来操作了,但是此方法不可靠,我们最终还是需要使用apache,iis来进行操作的,具体的操作方法如下: php防盗链: 复制代码 代码如下: <?php session_start(); session_register('check'); $_SESSION['check']=true; ?> 检查ses

  • nginx rewrite重写规则与防盗链配置方法教程详解

    导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标记的几种形式,盗链时返回403错误,允许的域名直接跟在第二行的域名后面. nginx rewrite重写规则与防盗链配置方法如下所示: nginx rewite 规则,官方文档:http://wiki.nginx.org/NginxHttpRewriteModule nginx rewrite规则格式:rewrite regex replacement flag flag标记有四种格式: last – 相

  • Referer原理与图片防盗链实现方法详解

    本文实例讲述了Referer原理与图片防盗链实现方法.分享给大家供大家参考,具体如下: 1.图片防盗链 在一些大型网站中,比如百度贴吧,该站点的图片采用了防盗链的规则,以至于使用下面代码会发生错误. 简单代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="

  • php实现博客,论坛图片防盗链的方法

    本文实例讲述了php实现博客,论坛图片防盗链的方法.分享给大家供大家参考,具体如下: 防盗链的方式很多,我这里就说说我对放盗链的理解,这个跟防止远程提交是一个原理. 先介绍一个函数 uniqid(string); //这个函数的作用,是在你添加的字符串后面随即添加一个独一无二ID字符串. 如果你还不放心,你可以给这个函输出的字符串再用SHA1()函数进行加密. 这样我们得到了一个独一无二,且只有你自己知道的字符串,用来做数字签证.接下来是如何检测这个数字签证. function has($str

  • php简单防盗链实现方法

    本文实例讲述了php简单防盗链实现方法.分享给大家供大家参考.具体如下: <?php $ADMIN = array( 'defaulturl'=> 'http://blog.qita.in/images/banner-header.gif', //盗链返回的地址 'url_1' => 'http://blog.qita.in/file', 'url_2' => 'http://blog.qita.in/file1', ); $okaysites = array( 'http://q

  • jsp实现防盗链的方法

    本文实例讲述了jsp实现防盗链的方法.分享给大家供大家参考,具体如下: 最近碰到盗链的问题,即复制一个url地址,在另一个地方也能访问. index.jsp页面 <html> <head><title>Simple jsp page</title></head> <body>Place your content here here is index jsp get header info <a href="a.jsp&

  • PHP实现防盗链的方法分析

    本文实例讲述了PHP实现防盗链的方法.分享给大家供大家参考,具体如下: $_SERVER['HTTP_REFERER']的获取情况 注意 $_SERVER['HTTP_REFERER'] 并不一定总能获取到,只有在以下情况下才能获取到: 一.能够取到HTTP_REFERER的情况为以下几种: 1.直接用<a href> 2.用Submit或<input type=image>提交的表单(POST or GET) 3.使用Jscript提交的表单(POST or GET) 二.不能取

  • 详解iis httpd.ini中IIS图片防盗链的方法

    一.创建目录 e:Rewrite 把 Rewrite 下的四个文件(httpd.ini .httpd.parse.errors.mtbnotif.dll.Rewrite.dll)上传到这里. 二.设置IIS属性,选择网站属性,到ISAPI筛选器, 关闭属性对话框. 再次查看网站属性,到ISAPI筛选器 如果看到状态为向上的绿色箭头,就说明Rewrite模块安装成功了. 点添加,在名称中输入rewrite,可执行文件选择刚才解压后的文件Rewrite.dll,点确定:再点确定, 三.修改 e:Re

随机推荐