【问题标题】:Force a language prefix in the url with Sitecore使用 Sitecore 在 URL 中强制使用语言前缀
【发布时间】:2014-01-15 09:41:33
【问题描述】:

是否有强制在 URL 中使用语言的设置?比如,如果我浏览到http://www.site.com,我应该被重定向到http://www.site.com/en,因为现在我可以看到没有语言前缀的起始页。

LinkManager 配置为始终放入前缀,因此至少所有链接看起来都很好。

【问题讨论】:

    标签: asp.net-mvc sitecore sitecore7


    【解决方案1】:

    另一种使用方式是我们的SEO Friendly URL Module

    此模块实现了一个自定义 LinkProvider,它提供了 SEO 友好 URL,并强制通过其友好 URL 访问项目。
    因此,如果访问项目时没有 URL 中的语言代码(例如 /my-item),模块将 301 重定向到带有语言代码的 URL(例如 /en/my-item)。
    也就是说,如果您已将其配置为强制使用友好 URL (forceFriendlyUrl="true") 并设置 languageEmbedding="always"

    我们在 corporate website 上使用该模块,因此请查看它以了解它的实际效果。

    【讨论】:

    • 是否有允许尾部斜杠的配置?
    • 嗨 Mikael,我已经添加了选项来配置如何处理尾随斜杠并将其放入 1.0.4 版中。它现在在 GitHub 上可用:github.com/ParTech/Seo-Friendly-Url
    【解决方案2】:

    您可以使用ISS URL Rewrite 将/重定向到/en

    在 IIS 上安装该模块,并设置规则。 可以从 IIS gui 或 web.config 完成

    我正在使用这条规则来做同样的事情。

    在 web.config 的 system.webServer 部分插入以下配置

    <system.webServer>
        <rewrite>
            <rule name="redirert / to en" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{PATH_INFO}" pattern="^/$" />
                    </conditions>
                    <action type="Redirect" url="/en/" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
    

    它将每一个命中“/”的请求重定向到“/en”

    【讨论】:

    • 当然这在技术上是错误的,因为它没有考虑到Accept-Language
    猜你喜欢
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 2011-02-18
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    相关资源
    最近更新 更多