IIS 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 应用程序。

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

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

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

我尝试了不同的东西,但对我没有任何用处。问题是我不擅长正则表达式,对不起。

创建 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>

您可能需要调整第二个,值得学习一些关于正则表达式的知识。 找一个在线正则表达式测试器并尝试一些值,并确保您想要的东西匹配。

最新更新