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服务,如果IIS服务没停的话,安装完成后会要求重启系统。)

安装完成后,打开“Internet 信息服务(IIS)管理器”,就可以看见模块中多了一个Url Rewrite 模块。

进入需要设置的站点,双击 Url Rewrite 图标,进入设置界面。

点击Add Rule(s)输入Rewrite重写规则。

确认无误后,点击右栏的“应用”按钮,大功告成

当然你也可以从原来配置的伪静态文件导入:支持isapi的httpd.ini或.htaccess

案例:

很友好的URL地址,使访问的人很容易记住。要求你的用户记住“ http://www.jb51.net/article.aspx?id=342&;title=URL-Rewrite-Walkthrough” 这样的网址并不是件很美妙的事。如果给用户提供如下URL地址:http://www.pipima.com/article/342/URL-Rewrite-Walkthrough,就能更好引起共鸣和更容易被记住。
通过IIS URL Rewrite 模块( URL Rewrite module)你可以很方便建立这一逻辑而不需要修改正在使用的Rewrite Maps代码.我将告诉你从IIS管理器里来实现。打开IIS管理器,选择“Default Web Site”,在“功能视图”单击“URL Rewrite”,然后在“操作”栏,单击“Add Rules…”,在“select a rule templates”对话框选择“Blank rule”,将打开“edit rule”属性页,按如下步骤定义实际的重写规则(rewrite rule):
1、规则名称。
2、匹配URL字符串所使用的模式。
3、设置条件选项。
4、模式匹配和所有条件检查成功后执行的操作。
为了实现下面的例子,“edit rule”属性页如下图所示:

规则的名称应该是唯一(不重复)的,匹配字符串“^article/([0-9]+)/([_0-9a-z-]+)”是正则表达式,将匹配满足一下标准的任何URL字符串:
1、开始于“article/”字符序列。
2、在“/”后包含一个或多个数字字符。
3、在第二个“/”后包含一个或多个字母或“_”或“-”。
因为我们创建一个支持重写URL的规则,因此规则类型是“Rewrite“。重写字符串(Rewrite UR)“article.aspx?id={R:1}&title={R:2}”指定一个新值用于输入被重写的URL。参数我们使用“ {R:1} ”和“{R:2}”,他们将返回一组通过规则匹配定义的引用(reference)。关于返回引用( back reference)你可以参考:URL Rewrite Module Configuration Reference,有关创建重写规则的更多内容见:Creating rewrite rules for the URL Rewrite Module
一个很重要的就是URL Rewrite模块是需要被安装才可以工作,你可以如下两个版本:
x86版本:http://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1691
x64版本:http://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1692
该模块(目前)只支持IIS7.0,你应该运行IIS7.0有利于使用它。如果你的项目是使用Visual Studio for Web Developers开发,那么项目应该配置成在iis7.0下运行,而不是其他的web服务器。
有关URL Rewrite模块的详细内容见:http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

注意:

1.原来的$1换成{R:1},其他语法少许变化<rewrite url="~/test/([a-zA-Z0-9_\-]+)/(\d+).html\?{0,1}(.*)$" to="~/test.aspx?id=$4&$5" processing="stop"/>
换成

<rule name="OrgPage" stopProcessing="true">
<match url="^test/([a-zA-Z0-9_\-]+)/(\d+).html\?{0,1}(.*)$" />
<action type="Rewrite" url="test.aspx?id={R:1}" />
</rule>

2.UrlRewriter中 url="~/module/“ ,在URL Rewrite Module中必须换成^module/,否则就算test通过,在实际环境中也无法解析;
3.以前 UrlRewriter中 url="^/([a-zA-Z0-9_]+)“是可以的,但是在URL Rewrite Module中不行,必须添加参数
<conditions logicalGrouping="MatchAll">

<add input="{HTTP_HOST}" pattern="^blog\.lehu\.shu\.edu\.cn$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>

4.另外需要注意IIS6的config转换到iis7的时候,需要删除applicationHost.config中<handlers accessPolicy="Read, Script" />的多余参数,或者干脆重新建立,否则会出现很多奇怪的问题,我昨天为了这个搞了好几个小时,后来才发现问题。
总体上说,IIS7比IIS6稳定些了,到现在位置,IIS6中总是出现的缓冲池死在IIS7中很少出现。具体情况还需要测试。
规则定义截图:
Web.config中的规则定义:

代码如下:

<rewrite>
    <rules>
        <rule name="RequestBlockingRule1" enabled="true" stopProcessing="true">
            <match url=".*" />
            <conditions>
                <add input="{HTTP_REFERER}" pattern="^$" negate="true" />
                <add input="{HTTP_REFERER}" pattern="^http://(.*\.)?(cnblogs\.com)/.*$" negate="true" />
            </conditions>
            <action type="CustomResponse" statusCode="404" />
        </rule>
    </rules>
</rewrite>

(0)

相关推荐

  • 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的ISAPI-Rewrite伪静态URL图片防盗链规则写法

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

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

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

  • 用rewrite实现IIS下图片文件防盗链的办法

    具体的设置方法:修改http.ini文件,在里面添加一下代码: 复制代码 代码如下: RewriteCond Host: (.+)  RewriteCond Referer: (?!http://\1.*).*  RewriteRule .*\.(?:gif|jpg|png|exe|rar|zip) /no.gif [I,O] 然后重启IIS,就生效了.       如果要对多个网站支持,特别允许例外地允许他们访问,那么就把第二句改成:RewriteCond Referer: (?!http:/

  • 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),双击安装即可(安装之前最好先

  • Nginx防盗链的配置方法

    处于服务性能的考虑,我们通常把HTML静态资源按照不同类型划分存放在多台服务上. 如果拓扑图: 超文本传输协议中的Referer作用 Referer:null    表示请求者直接访问 Referer:blocked  一般为防火墙设备添加的 Referer:URL      表示URL中的主机告诉请求者的间接访问 图中jpg.good.com显然是一台专门用户存放图片的服务器,而www.good.com是一台WEB服务器,从域名可以看出必然是一家公司,条件: 1.只允许访问www.good.c

  • URL Rewrite Module 2.1 URL重写模块规则写法

    先决条件 本演练需要满足以下先决条件: IIS安装 URL Rewrite Module 2.1 短地址http://www.iis.net/extensions/URLRewrite 下载页面 https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads 下载链接 https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859E

  • python3 图片referer防盗链的实现方法

    本篇文章主要破解referer防盗链技术 referer防盗链技术: referer防盗链技术是服务器通过检查客户端提起的请求包内的referer字段来阻止图片下载的,如果referer字段错误,服务器会跳到另一个地址,这将导致错误的图片下载. 上面已经了解到了referer防盗链技术,下面直接上代码. (我用的是python3,需要用到requests,html非系统包 下载方法:用python中的pip下载即可) import urllib.request import requests i

  • PHP防盗链的基本思想 防盗链的设置方法

    盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率.受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益.做好防止盗链的工作,是每个网站开发者的重要工作. 做好防盗链工作能给网站服务器减少不少压力,这里我们分享一种php防盗链的实现方法: 一般的下载的步骤:查找->输出查找结果列表->进入软件详细页面->点击下载按钮->打开下载页面->

  • php实现的网络相册图片防盗链完美破解方法

    本文实例讲述了php实现的网络相册图片防盗链完美破解方法.分享给大家供大家参考.具体如下: 网络相册图片防盗链破解程序 - PHP版 这个防盗链破解版可以完美破解当下比较流行的: 百度相册,网易相册,360我喜欢等网站图片. 还可以实现简单的图片防盗链. 因为这个类是先进行获取远程图片, 然后再把图片发送到客户端,所以,算是进行了两次流量的传送.因此,会浪费空间流量,接下来,会开发缓存功能,这样可以实现节约流量! <?php /** * 网络相册图片防盗链破解程序 - PHP版 * * 使用方法

  • 使用.htaccess设置图片防盗链的详细方法

    真正有用的.htaccess写法为 RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !jb51.net [NC] RewriteCond %{HTTP_REFERER} !youdao.com [NC] RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC] RewriteCond %{HTTP_REFERER} !twitter.com [NC

随机推荐