IIS 7.0 URL 重写不适用于语言参数

IIS 7.0 URL 重写不适用于语言参数

我想从 URL 中删除语言标记

http://www.mydomain.de/en-us/home.aspx

并将其重写为

http://www.mydomain.com/home.aspx

有人能解释一下这个 IIS 重写规则有什么问题吗?

<rule name="rewrite_languageparameter_en" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
  <match url="http://www.mydomain.de/en-us/*" />
  <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
  <action type="Redirect" url="www.mydomain.com/{R:1}" />

我也尝试过这个,但是什么也没有发生:

<rule name="rewrite_languageparameter_en" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
                <match url=".mydomain.de/([_0-9a-z-]+)/([_0-9a-z-]+)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Redirect" url="www.mydomain.com/{R:2}" />
            </rule>

答案1

您的正则表达式格式不正确。您的第一个示例没有 R:1 的选择器。

这适用于“en-us”之后的任何目录结构。

编辑域切换。

<rule name="Language redirect" stopProcessing="true">
<match url="^en-us/([a-z0-9-\./]*)" />
<action type="Redirect" url="http://www.mydomain.com/{R:1}" />
<conditions>
    <add input="{HTTP_HOST}" pattern="^www.mydomain.de$" />
</conditions>
</rule>

相关内容