IIS重写模块中URL中的重定向异常将被忽略

时间:2015-02-04 10:11:17

标签: exception redirect iis url-rewriting

我有一个新网站https://www.NewSite.com,我希望将旧网站https://www.OldSite.com的所有流量重定向到我的新网站https://www.NewSite.com/的根目录,但有一些例外。< / p>

例如,我希望URL(以及其他)https://www.OldSite.com/noredirect不被重定向,而其他要重写。例如:

因此,我在IIS的旧网站中写了两条规则:

<rewrite>
<rules>
   <clear />
      <rule name="Rewrite To New Site" stopProcessing="true">
          <match url="/kb(.*)" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
          <action type="Rewrite" url="https://www.newsite.com/kb" />
      </rule>
      <rule name="Redirect to New Site" stopProcessing="true">
          <match url="(.*)" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{REQUEST_URI}" pattern="(.*)/noredirect$" negate="true" />
          </conditions>
          <action type="Redirect" url="https://www.newsite.com" appendQueryString="false" />
      </rule>
  </rules>
</rewrite>

此规则只是将我的旧网站的所有请求重定向到我的新网站的根目录,忽略了异常和重写规则。同样的情况发生在:

<rule name="Redirect to New Site" stopProcessing="true">
              <match url="(.*)" />
              <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                <add input="{REQUEST_URI}" pattern="^/noredirect(.*)" negate="true" />
              </conditions>
              <action type="Redirect" url="https://www.newsite.com" appendQueryString="false" />
          </rule>

我做错了什么?

1 个答案:

答案 0 :(得分:0)

确保您已在“应用程序请求路由缓存”下选中“启用代理”。 您可以在此处找到有关它的一些信息: http://www.iis.net/learn/extensions/configuring-application-request-routing-%28arr%29/creating-a-forward-proxy-using-application-request-routing

祝你好运!