源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-12-03 04:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:IIS URL Rewrite Module防盗链规则配置方法
IIS版本:IIS 7.5 URL Rewrite组件:IIS URL Rewrite Module([url=http://www.iis.net/downloads/microsoft/url-rewrite]http://www.iis.net/downloads/microsoft/url-rewrite[/url]) 根据需要,点击右侧的下载链接(操作系统是64位的,就下载x64版本;32位的系统,就下载x86版本) 注意的是,目前安装的版本都是英文的了。 [img]http://files.jb51.net/file_images/article/201606/20160607224150.jpg[/img] 下载完成之后,安装重写模块。 下载的是本地msi包(rewrite_amd64.msi或者rewrite_x86.msi),双击安装即可(安装之前最好先停止IIS服务,如果IIS服务没停的话,安装完成后会要求重启系统。) [img]http://files.jb51.net/file_images/article/201606/20160607224401.png[/img] 安装完成后,打开“Internet 信息服务(IIS)管理器”,就可以看见模块中多了一个Url Rewrite 模块。 [img]http://files.jb51.net/file_images/article/201606/20160607224402.png[/img] 进入需要设置的站点,双击 Url Rewrite 图标,进入设置界面。 [img]http://files.jb51.net/file_images/article/201606/20160607224403.png[/img] 点击Add Rule(s)输入Rewrite重写规则。 确认无误后,点击右栏的“应用”按钮,大功告成 当然你也可以从原来配置的伪静态文件导入:支持isapi的httpd.ini或.htaccess [b]案例:[/b] 很友好的URL地址,使访问的人很容易记住。要求你的用户记住“ http://www.1sucai.cn/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”属性页如下图所示: [img]http://files.jb51.net/file_images/article/201606/20160607230357.jpg[/img] 规则的名称应该是唯一(不重复)的,匹配字符串“^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版本:[url=http://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1691]http://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1691[/url] x64版本:[url=http://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1692]http://www.iis.net/downloads/default.aspx?tabid=34&;g=6&i=1692[/url] 该模块(目前)只支持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}&{R:2}" /> </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中很少出现。具体情况还需要测试。 规则定义截图: [img]http://files.jb51.net/file_images/article/201311/20131122161922.jpg?20131022162054[/img] Web.config中的规则定义:
[u]复制代码[/u] 代码如下:
<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)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部