真正可用的IIS的ISAPI-Rewrite伪静态URL图片防盗链规则写法

网站程序的URL伪装法、服务器端的收费插件法和ISAPI-REWRITE的规则过滤法等,考虑自身网站结构和钱包的困难问题,最终选择了后者,即现在流行用来做伪静态的ISAPI Rewrite书写规则来实现
经测试四种情况正常,即站内链接正常,白名单里的链接正常,盗链者链接屏蔽,搜索引擎链接正常。

详细如下;

一、完全屏蔽所有盗链来源的写法(如已有其它规则,则置于已有规则的上面)


代码如下:

RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]

RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]

第一行通过RewriteCond的HOST定义其下的规则所适用的请求主机范围。
第二行通过RewriteCond的Referer定义规则适用的请求来源地址,我们都知道任何通过互联网方式访问网站都会留下Referer的痕迹,就好像我们在IIS日志里看到的一样。这里的(?!http://\1.*).*意思就是判断所有通过http协义发来的请求,都要应用规则。
第三行通过RewriteRule定义防盗链文件的后缀,这里仅是图片后缀,需要的可以添加mp3,rar等其它所有后缀。后面的/block.gif表示如果遇上这些后缀的文件被盗链后的转向,这里转向/根目录的block.gif,可以是HTML等任何文件。如果只想某个文件夹下面的文件不被盗链,只需要加上路径就可以。例如不想images和pic目录下的文件被盗,但其它可以。就要改写成:
RewriteRule (/images/|/pic/).*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]
这种情况主要是有些站长在别人友情链接里的图片地址是在自己这的。
最后面的[I,O,N],I表示不区分大小写,O表示对URL进行标准化,可能是用来处理Unicode编码的地址(例如包含中文的URL)以及QueryString的内容,N表示重新从站点请求文件而不是从本地缓存读取文件,目的是防止当用户访问了盗你链的网站后,再回到你的网站也出现盗链提示。
提示,由于此规则是通过Referer来获取带有http://字样的地址进行过滤,因此它无法防范其它协议的盗链,比如迅雷下载。但通过任何浏览器直接访问,只要是HTTP协义的,通杀。
以上关于RewriteCond和RewriteRule的作用仅是本人的土法理解,欢迎在这方面有专业研究的朋友在评论中指正,以免误导,另外如果遇到isapi-rewrite版本问题,只要保证后面的正则式写法正确就行。

二、排除性防盗链写法



代码如下:

RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteCond Referer: (?!http://(.*)(\.baidu\.com|\.google\.com|\.google\.cn|\.g\.cn|\.gougou\.com|\.soso\.com|\.sogou\.com|\.youdao\.com|\.bing\.com|\.yahoo\.com|\.yahoo\.cn|\.eojoo\.com)).*
RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteCond Referer: (?!http://(.*)(\.baidu\.com|\.google\.com|\.google\.cn|\.g\.cn|\.gougou\.com|\.soso\.com|\.sogou\.com|\.youdao\.com|\.bing\.com|\.yahoo\.com|\.yahoo\.cn|\.eojoo\.com)).*
RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]

第一行同上
第二行同上
第三行通过正则表达式对第二行中的请求协义地址进行过滤,这里按上面的写法,过滤了所有流行的搜索引擎,当然也包括你自己的站,或是你同台服务器其它的站。每个不同的域名写法是\.baidu\.com,多个有|号相隔。如果是IP则这样写100\.100\.100\.100
第四行同上
这样说明应该不难理解吧,直接拿去用,按着原有格式改。
规则中出现的正则表达式符号小解:
. 表示匹配除换行符以外的任意字符
+ 表示前面的字符可以出现一到任意多次
* 表示前面的字符可以出现零到任意多次
() 表示一个表达组,可以拿它和加减乘除法一起理解
?! 表示断言这个符号后面的字符如果出现则不再进行接下去的匹配
\ 表示转义符号,比如网址中的.是规则内置的运算符号,要把它通过\转义成字符。
| 表示或者,用于连接多种可能

(0)

相关推荐

  • php 伪静态之IIS篇

    有的win主机IIS不支持 .htaccess 文件, 我在这里指的不是本地 在本地的话用apmserv服务器可以用.htaccess 文件,用apmserv服务器环境配置伪静态可以看 php 伪静态 (url rewrite mod_rewrite 重写) 这篇文章,讲的很详细. 这里我们主要讲解httpd.ini 废话不说直接看效果~ 例: www.jb51.net/index.php我们想让他用 www.jb51.net/index.html 来直接访问www.jb51.net/newxx

  • Win7/Windows2003下IIS6.0、IIS7.5的伪静态组件安装和伪静态配置方法

    1)下载IIS伪静态组件--ISAPI_Rewrite3完全破解版 ISAPI_Rewrite3非常好用,是个人见过最好用同时可以支持多站点的IIS伪静态组件!1.官网下载(http://www.helicontech.com/download/isapi_rewrite/ISAPI_Rewrite3_0073.msi):2.建议从本网站下载破解版:http://www.jb51.net/softs/41171.html2)安装IIS伪静态组件1.以下载本网站的破解版为例:将下载的ISAPI_R

  • ISAPI Rewrite iis伪静态组件最新教程

    在IIS下实现动态网页静态化的方法有两种:1 升级到IIS7-如果你的服务器不是Windows 2008,那么你只能放弃.2 使用三方插件-最可靠的就是ISAPI Rewrite了,所以本教程着重介绍. ISAPI Rewrite目前最新版本是3.0,3.0分成Lite和Full两个版本.Lite版无限期完全免费,Full版要99美金. 两者最大的区别是,如果你服务器上有配置了多个网站,Full版可以为每个不同的站点设置不同的Rewrite rule.所以如果你不需要每个网站单独设置规则,大可放

  • apache伪静态与iis伪静态规则与配置区别介绍

    本文章来总结一下关于apache伪静态与iis伪静态区别介绍,主要讲到了一些规则的问题与配置区别,以后大家就可以直接在iis伪静态转换apache,反之也很简单哦. 在我开时打开模式不一样:apache的.htaccess配置文件是以:RewriteEngine On 将写模式打开.Apache伪静态html(URL Rewrite)设置法phpma一 打开 Apache 的配置文件 httpd.conf .phpma二 将#LoadModule rewrite_module modules/m

  • Apache,IIS下Discuz x1.5伪静态设置方法

    1.如是Apache服务器,操作如下: 建立.htaccess文件,在该文件里面写入如下伪静态规则: 复制代码 代码如下: # 将 RewriteEngine 模式打开 RewriteEngine On # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase /discuzxx # Rewrite 系统规则请勿修改 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^to

  • IIS 7.5 配置伪静态

    1)首先新建一个应用程序池,名称任意,比如:nettest,托管管道模式先暂时设置为集成模式,等下面的一系列设置完成之后再设置成经典模式: 2)部署好站点,并将此站点的应用程序池设置为nettest; 3)选中站点,切换到功能试图,找到 "服务器组件"-> "处理程序映射",双击之后,在打开窗口右侧的操作栏目下做如下设置: 4)"添加脚本映射":请求路径 .html ,可执行文件选择 C:\Windows\Microsoft.NET\Fra

  • ISAPI Rewrite多站点破解版 完美实现IIS伪静态的方法

    在前文中,介绍了Windows2003 IIS6/7完美实现WordPress伪静态的方法,主要说的是WordPress的伪静态配置方法,有一点局限性.而且用的是也免费的伪静态组件,只支持单站点,应用于其它系统可能不太合适.今天,就为大家介绍下Windows2003下IIS6.0.IIS7.0的伪静态组件安装和伪静态配置方法,还包括常用的伪静态规则使用方法.1)下载IIS伪静态组件--ISAPI Rewrite v1.3 for IIS.CR完美破解版ISAPI Rewrite v1.3 for

  • DEDECMS TAG伪静态 IIS_rewrite配置方法附rewrite下载

    方法 1.因为没有像PHP自带的ReWrite模块,所以需要下载IIS Rewrite模块: http://www.jb51.net/softs/6192.html 2.将压缩包解压到任意目录,(如:C:\Rewrite).然后打开"控制面板"-"管理工具"-"IIS信息服务管理器"-"网站"-"您的站点 "-"属性".在"ISAPI筛选器"项点击 "添加&

  • 真正可用的IIS的ISAPI-Rewrite伪静态URL图片防盗链规则写法

    网站程序的URL伪装法.服务器端的收费插件法和ISAPI-REWRITE的规则过滤法等,考虑自身网站结构和钱包的困难问题,最终选择了后者,即现在流行用来做伪静态的ISAPI Rewrite书写规则来实现 经测试四种情况正常,即站内链接正常,白名单里的链接正常,盗链者链接屏蔽,搜索引擎链接正常. 详细如下: 一.完全屏蔽所有盗链来源的写法(如已有其它规则,则置于已有规则的上面) 复制代码 代码如下: RewriteCond Host: (.+) RewriteCond Referer: (?!ht

  • IIS真正能用的ISAPI-Rewrite图片防盗链规则写法

    通过G.CN和B.CN搜索后得出了几种不同的方案,例如网站程序的URL伪装法.服务器端的收费插件法和ISAPI-REWRITE的规则过滤法等,考虑自身网站结构和钱包的困难问题,最终选择了后者,即现在流行用来做伪静态的ISAPI Rewrite书写规则来实现我的防盗链"梦想". 为什么说是梦想呢?首先表示惋惜,懒人我搜来了一大票经过无数次转载而来的文章,把现呈的代码应用后发现要么根本不起作用,要么就是效果达不到我想要的,几经周折后终于把这原本认为可以轻易借鉴照搬的防盗链给完成了,恨那些只

  • IIS防盗链 ISAPI Rewrite图片防盗链规则写法

    通过G.CN和B.CN搜索后得出了几种不同的方案,例如网站程序的URL伪装法.服务器端的收费插件法和ISAPI-REWRITE的规则过滤法等,考虑自身网站结构和钱包的困难问题,最终选择了后者,即现在流行用来做伪静态的ISAPI Rewrite书写规则来实现我的防盗链"梦想". 为什么说是梦想呢?首先表示惋惜,懒人我搜来了一大票经过无数次转载而来的文章,把现呈的代码应用后发现要么根本不起作用,要么就是效果达不到我想要的,几经周折后终于把这原本认为可以轻易借鉴照搬的防盗链给完成了,恨那些只

  • IIS图片防盗链和下载的解决方案

    在要启用Rewrite的IIS站点的Isapi上添加这个筛选器 筛选器名称Rewrite 可执行文件选择 c:\Rewrite\Rewrite.dll 即可以了 httpd.ini是配置文件 图片防盗链代码 复制代码 代码如下: [ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 # Protect httpd.ini and httpd.parse.errors files # from accessing th

  • 基于ISAPI Rewrite软件实现IIS图片防盗链方法

    下面的操作,可能引起用户的反感,如果访客想从你这个页面,保存个图片都是不能的,用户体验何在啊. 实施步骤: 1.下载比较出名的www.helicontech.com提供的ISAPI Rewrite软件的免费版本(免费版本虽然有一些功能上的限制,但是做防盗链足够了): http://www.isapirewrite.com/download/isapi_rwl_x86_0072.msi 2.设置软件安装目录的IIS_WGP组的读写权限(重要,如果不设置安装完后你的网站就会直接Service Una

  • 详解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

  • IIS URL Rewrite Module防盗链规则配置方法

    IIS版本:IIS 7.5 URL Rewrite组件:IIS URL Rewrite Module(http://www.iis.net/downloads/microsoft/url-rewrite) 根据需要,点击右侧的下载链接(操作系统是64位的,就下载x64版本:32位的系统,就下载x86版本) 注意的是,目前安装的版本都是英文的了. 下载完成之后,安装重写模块. 下载的是本地msi包(rewrite_amd64.msi或者rewrite_x86.msi),双击安装即可(安装之前最好先

  • IIS防盗链,防迅雷的唯一方案(safe3if)

    最近一周多公司的网站反应速度特别慢,Ping一下速度都超过1000ms,会员也开始抱怨.向机房反映以后,机房说瓶颈在我们的防火墙设备那里,不在他们机房的线路.连到设备上一看,带宽占用稳定超过25M,这台设备的最大带宽也就是25M,看来的确是达到它的瓶颈了. 本来考虑换个更大的防火墙,但是后来想一想,以目前网站的PV和内容来看,也没有理由占用这么大带宽啊. 于是想办法分析日志,下载了几个比较大的日志文件,怎么分析呢?最后找到Nihuo Web Log Analyzer 3这个东西,虽然是试用,但是

随机推荐