Asp.net mvc 4 重写规则以从一种语言重定向到另一种语言,特定页面除外

Asp.net mvc 4 重写规则以从一种语言重定向到另一种语言,特定页面除外,asp.net-mvc-4,sitecore,Asp.net Mvc 4,Sitecore,在我下面提到的重定向规则中,我正在将网站“fr ca”语言重定向到“en”语言,但入职页面除外。这意味着,如果URL包含登录页面,则URL不应重定向到“en”语言。但它总是重定向到“en”。请让我知道我的规则出了什么问题。提前谢谢。 问题在于HTTP\U主机处于第二种状态。请改用路径信息: <rule name="Site-fr-CA to en" stopProcessing="false"> <match url="^fr-ca(.*)$" /> <c

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


问题在于HTTP\U主机处于第二种状态。请改用路径信息:

<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>

它仍在重定向到“en”入职页面。您是否在带有路径信息的条件中添加了前导斜杠^/fr ca/入职(.*)与^fr ca/入职(.*)相比$
<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>