1

我想完全匹配https://internet.dev.local/ KYR url(不带 / 到结尾)并重定向或重写到https://internet.dev.local/ KYR/(带 /)。

我正在尝试以下规则,但它也匹配其他 URL,例如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>
4

1 回答 1

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>
于 2013-02-06T15:58:55.653 回答