IIS URL重定向到具有不同查询字符串的同一页面

时间:2017-02-03 17:47:13

标签: iis url-rewriting web-config

我有一段JavaScript代码,当用户访问没有查询字符串的mypage时,我会使用特定的查询字符串重定向到同一页面。

我认为最好使用IIS URL重写规则来执行此操作,如下所示:

<rules>
  <rule name="mypage" stopProcessing="true">
    <match url="/mypage/*$" />    
    <action type="Redirect" url="/mypage/?category=shopping" appendQueryString="true" />
  </rule>
</rules>

它根本不起作用。

我使用IIS工具测试了正则表达式并且很好,IIS也选择了重写规则,因此不存在问题。我将appendQueryString设置为true和false,以防万一。但它在任何一种情况下都无效。

另外,我尝试过两次&#34;重写&#34;和&#34;重定向&#34;动作类型,以防万一。没有工作。

你可以帮忙吗?感谢。

1 个答案:

答案 0 :(得分:1)

您需要删除匹配网址中的第一个斜杠。您还需要检查已存在的查询字符串,否则它将进入无限重定向循环。如果你重写了

,你将不会遇到这个问题
   <rule name="mypage" stopProcessing="true">
      <match url="^mypage/*$" />
      <action type="Redirect" url="/mypage/?category=shopping" appendQueryString="true" />
      <conditions>
        <add input="{QUERY_STRING}" pattern="category=shopping" negate="true" />
      </conditions>
    </rule>