IIS URL重写默认语言路径(IIS URL Rewrite Default Language P

2019-10-30 08:19发布

我试图让规则工作,其中语言标识符是URL路径。 我们想如果没有指定语言的URL强制与EN版本。 例如:

www.domain.com/page.aspx应该重定向到www.domain.com/en/page.aspx

这里是我们到目前为止的规则,但它一直在重定向循环结束了。

<rule name="Default Language" stopProcessing="true">
        <match url="(.*)" />
        <conditions>                
            <add input="{REQUEST_URI}" pattern="^/(en|es|ph)/" negate="true" ignoreCase="true" />
        </conditions>
        <action type="Redirect" url="/en/{R:1}" redirectType="Permanent" />
    </rule>

任何想法到哪里去了?

Answer 1:

更改您的规则:

<rule name="Default Language" stopProcessing="true">
    <match url="^en/" negate="true" />
    <action type="Redirect" url="/en/{R:0}" redirectType="Permanent" />
</rule>

它会检查网址开头是en/如果没有,它会追加en/在请求路径的前面。

你有因为无论反向引用被送到一个无限重定向/en/{R:1}它匹配(.*)因为任何/所有比赛)。



文章来源: IIS URL Rewrite Default Language Path