IIS7 Url重写未使用

时间:2012-03-10 17:12:19

标签: iis-7 url-rewriting

我正在重建现有asp应用程序的一部分,新部件是用MVC构建的。

我现在不接触的旧屏幕之一需要指向一个新位置。出于这个原因,我在机器级别的IIS中设置了一个URL重定向,其中包含以下正则表达式:

^workflows/screen\.asp\?objectid=([0-9]+)(.*)

使用测试仪时,我可以看到它是一个正确的表达式,可以捕获必要的项目,我需要将用户发送到以下新URL:

http://domainname/newapppart/select/{R:1}

在我的浏览器中进行测试时,虽然看起来好像重写规则不存在,因为我仍然发送到旧页面。

1 个答案:

答案 0 :(得分:1)

查询字符串未包含在主匹配字符串中,您必须使用Conditions对其进行评估。

<rule name="MyRule" stopProcessing="true">
    <match url="^workflows/screen\.asp$" />
    <conditions trackAllCaptures="true">
        <add input="{QUERY_STRING}" pattern="objectid=([0-9]+).*" />
    </conditions>
    <action type="Rewrite" url="http://domainname/newapppart/select/{C:1}" appendQueryString="false" />
</rule>