如何使用IIS HTTP通配符重定向保留查询参数?

时间:2014-11-10 22:15:53

标签: asp.net iis http-redirect

我正在尝试配置重定向以准备从ASP到MVC网站的切换。 IIS通配符重定向工作正常,但我无法弄清楚如何保留查询参数。

示例:

<system.webServer>
  <httpRedirect enabled="true" exactDestination="true" httpResponseStatus="Permanent">
    <add wildcard="/EmailAddress-Verify.aspx" destination="https://foo.com/account/email-verify$Q" />
  </httpRedirect>
</system.webServer>

我读到$Q will preserve the query params,但它不起作用。谷歌在这个问题上找不到任何东西..这里有什么我想念的吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

所以这个配置工作得很好!我只需要清除浏览器缓存,因为重定向是Permanent,浏览器在我使用配置文件时“记住”我以前的配置。我的坏!

答案 1 :(得分:0)

Y̶o̶u̶̶h̶a̶v̶e̶̶e̶x̶a̶c̶t̶D̶e̶s̶t̶i̶n̶t̶i̶o̶n̶=̶“̶t̶r̶u̶e̶”̶.̶但是,更重要的是,当您希望通过重定向进行更精细的控制时,使用URL Rewrite module会更好。您的位将类似于以下内容(未经过测试和快速编写):

<rewrite>
  <rules>
    <rule name="Email Address Verify Redirect" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
         <add input="{REQUEST_URI}" pattern="^EmailAddress-Verify.aspx(.*)$" />
      </conditions>
      <action type="Redirect" redirectType="Permanent" url="https://foo.com/account/email-verify{R:1}" />
    </rule>
 ...
 </rewrites>

哦,现在我考虑一下,你可能只是做一个没有下面的通配符的直接模式,只是在动作中追加了QueryString =“True”。