0

我有此规则可将流量重定向到/public,但出现“重定向循环”错误。有什么建议么?

<rule name="Redirect to /public" stopProcessing="true">
    <conditions logicalGrouping="MatchAll">
       <add input="{HTTP_HOST}" pattern="^test.example\.com$" ignoreCase="false" />
    </conditions>
    <action type="Redirect" url="http://test.example.com/{R:1}" />
    <match url="(.*)" ignoreCase="false" />
</rule>
4

1 回答 1

1

您有一个循环,因为您的规则在以下情况下被触发:

  1. url="(.*)"=> 总是正确的
  2. {HTTP_HOST}匹配^test.example\.com$=> 在您的情况下始终为真

您的重定向规则由访问您网站的任何 url 触发。
然后它会重定向到您的网站,其网址将再次匹配规则...

如果要将所有请求重定向到/public,可以使用以下规则:

<rule name="Redirect to /public" stopProcessing="true">
    <match url="^public/(.*)" negate="true" />
    <action type="Redirect" url="public/{R:1}" />
</rule>

它检查 url 是否不以public/. 如果是这种情况,它会重定向到public/UrlRequested.

您也可以保留您conditions的:

<rule name="Redirect to /public" stopProcessing="true">
    <match url="^public/(.*)" negate="true" />
    <conditions logicalGrouping="MatchAll">
      <add input="{HTTP_HOST}" pattern="^test.example\.com$" ignoreCase="false" />
    </conditions>
    <action type="Redirect" url="public/{R:1}" />
</rule>
于 2013-03-26T15:23:50.703 回答