重写规则以从一种语言重定向到除某些页面之外的其他语言

时间:2018-04-20 15:42:33

标签: asp.net-mvc-4 sitecore

在我下面提到的重定向规则中,我将网站“fr-ca”语言重定向到“en”语言,除了入门页面。这意味着如果网址包含入门页面,则网址不应重定向到“en”语言。但它总是重定向到“en”。请让我知道我的规则有什么问题。提前致谢。     

  <rule name="Site-fr-CA to en" stopProcessing="false">
      <match url="^fr-ca(.*)$" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^(.*)www.TestSite.com(.*)$" ignoreCase="false" />
        <add input="{HTTP_HOST}" pattern="^fr-ca/onboarding(.*)$" negate="true" />
      </conditions>
      <action type="Redirect" redirectType="Permanent" url="/en{R:1}" />
    </rule>

 </rules>

1 个答案:

答案 0 :(得分:0)

问题是第二个条件中的HTTP_HOST。改为使用PATH_INFO:

<rule name="Site-fr-CA to en" stopProcessing="false">
  <match url="^fr-ca(.*)$" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^(.*)www.TestSite.com(.*)$" ignoreCase="false" />
    <add input="{PATH_INFO}" pattern="^/fr-ca/onboarding(.*)$" negate="true" />
  </conditions>
  <action type="Redirect" redirectType="Permanent" url="/en{R:1}" />
</rule>