IIS 7 URL重写特定URL的匹配项

时间:2013-02-06 01:21:23

标签: iis url-rewriting

我想完全匹配https://internet.dev.local/ KYR 网址(没有/结束)并重定向或重写为https://internet.dev.local/ KYR / (与/).

我正在尝试以下规则,但它也匹配其他网址,例如 https://internet.dev.local/KYR/Admin/Form/Default.aspx?signup=false ,这是错误的。

那我怎么能实现这个目标呢?

<rule name="Static redirect" patternSyntax="ExactMatch" stopProcessing="true">
        <match url="https://internet.dev.local/KYR" negate="true" />
        <conditions>
        </conditions>
        <action type="Redirect" url="/Login/?ReturnUrl=/Member/KYR/" redirectType="Permanent" />
      </rule>

1 个答案:

答案 0 :(得分:0)

如果您需要测试主机和协议,则必须将其置于条件中,而不是全局规则中 按照你的例子,它将如下:

<rule name="test" patternSyntax="ExactMatch" stopProcessing="true">
  <match url="KYR" />
  <action type="Redirect" url="/KYR/" redirectType="Permanent" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="internet.dev.local" />
    <add input="{HTTPS}" pattern="on" />
  </conditions>
</rule>

我已更改操作中的url,因为您的问题是:
redirect or rewrite to https://internet.dev.local/KYR/ (with /).

修改
要使其在任何主机上运行(使用或不使用SSL),只需删除条件:

<rule name="test" patternSyntax="ExactMatch" stopProcessing="true">
  <match url="KYR" />
  <action type="Redirect" url="/KYR/" redirectType="Permanent" />
</rule>