想要从URL中删除语言,例如将abc.com \ en \ about重定向到abc.com \ about

我想将abc.com \ en \ about重定向到abc.com \ 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规则,但这也没有用。

nuaadoudou 回答:想要从URL中删除语言,例如将abc.com \ en \ about重定向到abc.com \ about

Rule Pattern获取URL的路径字符串,并且不包含服务器的主机名。因此,入站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
这是重写模块的正式说明。
https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference
随时让我知道是否有什么可以帮助您的。

本文链接:https://www.f2er.com/2387243.html

大家都在问