我正在重建现有asp应用程序的一部分,新部件是用MVC构建的。
我现在不接触的旧屏幕之一需要指向一个新位置。出于这个原因,我在机器级别的IIS中设置了一个URL重定向,其中包含以下正则表达式:
^workflows/screen\.asp\?objectid=([0-9]+)(.*)
使用测试仪时,我可以看到它是一个正确的表达式,可以捕获必要的项目,我需要将用户发送到以下新URL:
http://domainname/newapppart/select/{R: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>