IIS网址重写器:重定向语言代码

时间:2019-04-06 18:03:11

标签: regex iis url-rewriting

我用不同的语言为客户建立了一个网站,Url看起来像

https://www.example.com/en-US/Something/More
https://www.example.com/de-DE/Etwas/Mehr
https://www.example.com/fr-FR/Quelquechose/plus

问题是:客户端现在需要/ en /,/ de /和/ fr /等语言代码。没问题可以更改,但是这些页面在Google上的排名很高,现在可以显示404个页面。

该站点在IIS上运行,它是一个ASP.Net应用程序。

任何人都可以告诉我如何定义一个重写(重定向)规则以包含在web.config文件中,以重定向所有类似Urls的

http(s)://www.example.com/en-US[/...]

http(s)://www.example.com/en[/...]

我尝试了不同的东西,但对我没有任何帮助。问题是我的正则表达式不好,对不起。

1 个答案:

答案 0 :(得分:1)

要么创建3个看起来像这样的规则:

<rewrite>
    <rules>
        <rule name="RedirectEnglish" stopProcessing="true">
            <match url="en-US(.*)" />
            <action type="Redirect" url="en{R:1}" redirectType="Temporary" />
        </rule>
    </rules>
</rewrite>

或者尝试更喜欢的东西

<rewrite>
    <rules>
        <rule name="RedirectEnglish" stopProcessing="true">
            <match url="(en|de|fr)-[A-Za-z]{2}(.*)" />
            <action type="Redirect" url="{R:1}{R:2}" redirectType="Temporary" />
        </rule>
    </rules>
</rewrite>

您可能需要调整第二个代码,值得学习有关正则表达式的知识。找到一个在线正则表达式测试器并尝试一些值,并确保所需的内容匹配。