我想从 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>