我用不同的语言为客户建立了一个网站,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[/...]
我尝试了不同的东西,但对我没有任何帮助。问题是我的正则表达式不好,对不起。
答案 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>
您可能需要调整第二个代码,值得学习有关正则表达式的知识。找到一个在线正则表达式测试器并尝试一些值,并确保所需的内容匹配。