本文主要介绍IIS URL重写模块防盗链规则的配置方法,请参考。
版本:IIS 7.5
URL重写组件:IIS URL重写模块(http://www.iis.net/downloads/microsoft/url-rewrite)
根据需要,点击右边的下载链接(如果操作系统是64位,下载x64版本;32位系统,下载x86版本)
注意,目前安装的版本都是英文的。
下载后,安装重写模块。
下载本地msi包(rewrite_amd64.msi或rewrite_x86.msi),双击安装(安装前最好停止IIS服务。如果IIS服务没有停止,安装后会要求您重新启动系统。)
安装完成后,打开互联网信息服务(IIS)管理器,可以看到模块中多了一个Url重写模块。
进入要设置的站点,双击Url重写图标,进入设置界面。
单击添加规则输入重写规则。
确认后,点击右栏的“应用”按钮,就大功告成了。
当然,也可以从最初配置的伪静态文件导入:httpd.ini或。支持isapi的htaccess。
案例:
非常友好的URL地址,便于访问者记忆。请你的用户记住“https://www.jb51.net/article.aspx?”id=342像title=URL-Rewrite-Walkthrough这样的URL并不是什么好东西。如果你给用户提供以下网址:http://www.pipima.com/article/342/URL-Rewrite-Walkthrough,会更容易引起共鸣,也更容易记住。
使用IIS的URL重写模块,您可以轻松地建立这个逻辑,而无需修改正在使用的重写映射代码。我会告诉你从IIS管理器实现它。打开IIS管理器,选择默认网站,在函数视图中单击URL重写,在操作栏中单击添加规则…,并在选择规则模板对话框中选择空白规则。将打开编辑规则属性页,实际的重写规则将定义如下。
1.规则的名称。
2.匹配URL字符串使用的模式。
3.设置条件选项。
4.模式匹配和所有条件检查成功后执行的操作。
为实现以下示例,下图显示了“编辑规则”属性页:
规则的名称应该是唯一的(非重复的),匹配字符串“article/([0-9])/([_ 0-9a-z-])”是一个正则表达式,它将匹配满足以下条件的任何URL字符串:
1.以“文章/”字符序列开始。
2.在“/”后包含一个或多个数字字符。
3.在第二个“/”后包含一个或多个字母或“_”或“-”。
因为我们创建了一个支持重写URL的规则,所以规则类型是“重写”。重写字符串“article.aspx?”Id={R:1}title={R:2} "为输入重写的URL指定一个新值。我们使用“{R:1}”和“{R:2}”作为参数,它们将返回一组由规则匹配定义的引用。反向参考,可以参考:URL重写模块配置参考。有关创建重写规则的详情,请参阅:为URL重写模块创建重写规则。
很重要的一点是,URL重写模块需要安装后才能工作。您可以有以下两个版本:
X86版本:http://www.iis.net/downloads/default.aspx? tabid=34;g=6i=1691
X64版本:http://www.iis.net/downloads/default.aspx? tabid=34;g=6i=1692
此模块(目前)仅支持IIS7.0。您应该运行IIS7.0来帮助您使用它。如果您的项目是使用Visual Studio for web Developers开发的,那么该项目应该配置为在iis7.0下运行,而不是在其他web服务器下运行。
有关URL重写模块的详细信息,请参阅: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 '处理='停止'/
变成
规则名称='OrgPage '停止处理='true '
匹配url='^test/([a-za-z0-9_\-])/(\ d)。html\?{0,1}(.*)$' /
操作类型='重写' URL='测试。aspx?id={R:1}{R:2}' /
/规则
2.UrlRewriter中url='~/module/",在统一资源定位器重写模块中必须换成^module/,否则就算试验通过,在实际环境中也无法解析;
3.以前UrlRewriter中url='^/([a-zA-Z0-9_])”是可以的,但是在统一资源定位器重写模块中不行,必须添加参数
条件逻辑分组='MatchAll '
添加输入="{ http _ host }"pattern='^blog\.乐虎\。舒\。edu .人民币$' /
add input=' { REQUEST _ FILENAME } ' match type=' is file ' negate=' true '/
add input=' { REQUEST _ FILENAME } ' match type=' is directory ' negate=' true '/
/条件
4.另外需要注意IIS6的配置转换到iis7的时候,需要删除应用程序主机。配置中处理程序accessPolicy='Read,Script' /的多余参数,或者干脆重新建立,否则会出现很多奇怪的问题,我昨天为了这个搞了好几个小时,后来才发现问题。
总体上说,IIS7比IIS6稳定些了,到现在位置,IIS6中总是出现的缓冲池死在IIS7中很少出现。具体情况还需要测试。
规则定义截图:
网页配置中的规则定义:
复制代码代码如下:
重写
规则
规则名称='RequestBlockingRule1 '启用='真'停止处理='真'
匹配url=' .*' /
情况
添加输入=' { http _ referer } ' pattern='^$'求反='真'/
添加输入=' { http _ referer } ' pattern='^http://(.*\.)?(cnblogs\ .com)/.*$' negate='true' /
/条件
操作类型='自定义响应'状态代码=' 404 '/
/规则
/规则
/重写
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。