2012-03-10 53 views
0

我正在重建现有的asp应用程序的一部分,新的部分是使用MVC构建的。IIS7 Url重写未被使用

其中一个我现在没有触及的旧屏幕需要指向一个新的位置。出于这个原因,我已经建立了一个URL在IIS重定向机水平以下正则表达式:

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

当使用测试仪我可以看到,这是一个正确的表情惹人必要的项目,我需要发送用户到以下新网址:

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

当我在浏览器中测试它,虽然它好像重写规则甚至没有到位,因为我仍然发送到旧的页面。

回答

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>