【问题标题】:IIS URL Rewrite Default Language PathIIS URL 重写默认语言路径
【发布时间】:2013-07-31 04:49:33
【问题描述】:

我正在尝试使语言标识符位于 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>

有什么想法会出错吗?

【问题讨论】:

    标签: iis url-rewriting


    【解决方案1】:

    将您的规则更改为:

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

    它将检查 url 是否以 en/ 开头,如果不是,它将在请求的路径前附加 en/

    您有一个无限重定向,因为无论向/en/{R:1} 发送什么反向引用,它都匹配(.*)(因为它匹配任何/一切)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 2021-09-24
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      • 2011-10-20
      • 2012-11-18
      相关资源
      最近更新 更多