想删除URL中的语言,如将abc.com/en/about重定向到abc.com/about。

问题描述 投票:0回答:1

我想把abc.com/cnen/about重定向到abc.com/cn/about。我试过在web配置文件中添加规则。

<rules>
  <rule name="Redirect" stopProcessing="true">
    <match url="(.*)/en/(.*)" ignoreCase="true"/>
    <action type="Redirect" url="{R:1}/{R:2}" redirectType="Permanent"/>
  </rule>
</rules>

也添加了重写规则,但没有成功。

<rules>
  <rule name="RedirectEnglish" stopProcessing="true">
    <match url=".*/en/.*" ignoreCase="true"/>
    <action type="Rewrite" url="{R:1}/{R:2}" appendQueryString="false" />
  </rule>
</rules>

我还能做些什么来让我的网站有上述变化?我添加了IIS规则,但也没有用。

redirect iis url-rewriting web-config sitecore-mvc
1个回答
0
投票

Rule Pattern 但它只获取了URL的Path字符串,并没有包含服务器的主机名。因此,入站的URL将不符合规则,而规则动作也不会被执行。这是我的例子。

  <rewrite>
      <rules>
        <rule name="Redirect" enabled="true" stopProcessing="true">
          <match url="^en/(.*)" />
          <action type="Redirect" url="{R:1}" />
                    <conditions logicalGrouping="MatchAny">
                    </conditions>
        </rule>
      </rules>

另外,也可以这样做。

<rewrite>
      <rules>
        <rule name="Reverse Proxy" enabled="true" stopProcessing="true">
          <match url="^en/(.*)" />
          <action type="Rewrite" url="{R:1}" />
                    <conditions logicalGrouping="MatchAny">
                    </conditions>
        </rule>
      </rules>

结果。enter image description here


enter image description here 下面是官方对Rewrite模块的解释。https:/docs.microsoft.comen-usiisextensionsurl-rewrite-moduleurl-rewrite-module-configuration-reference。 如果有什么需要我帮忙的,请随时告诉我。
© www.soinside.com 2019 - 2024. All rights reserved.