【问题标题】:Sitecore country ISO in url网址中的 Sitecore 国家/地区 ISO
【发布时间】:2011-10-12 13:47:55
【问题描述】:

我在 sitecore 中创建了一个具有多种语言的网站...我是内容编辑器(系统 > 语言)我指定了三种语言(荷兰语、英语和德语)。不,我有 2 个问题。

例如,当一个项目有英文版本但没有德文和荷兰文版本时,我输入德文网站的地址:www.testsite.com/de 我得到德文网站,但没有内容。在这种情况下,我希望显示 404 页面。

另一个问题是,当我转到系统 > 语言中未指定的语言时,该项目仍然是一个空站点。在这种情况下,我还希望显示 404 页面。只要页面是有效的 ISO 代码,Sitecore 就会显示该页面。

我使用的是 Sitecore 6.4

有没有人可以解决这些问题?

提前致谢!

mrtentje

我的 LinkManager 在 Web.config 中指定如下:

<add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="true" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="asNeeded" languageLocation="filePath" shortenUrls="true" useDisplayName="false"/>

【问题讨论】:

    标签: url-routing sitecore sitecore6


    【解决方案1】:

    不幸的是,您必须在 Sitecore 中手动管理这两个场景,它们都有非常简单的解决方案,但需要您进行一些开发。

    对于第一个(访问没有翻译的页面),我认为您需要在 Sitecore 中扩展当前的ItemResolver,并让它明确检查是否存在已选择语言的版本。我自己还没有实现,但这就是我处理它的方式。

    第二个(只接受某些语言)是我处理过的,Sitecore 自己无法处理它真的让我很困扰(尽管也许它可以处理,但我错过了)。为此,我在名为 PermissableLanguageChecker 的 LanguageResolver 之后立即在管道中创建了一个步骤。这将检查请求的当前语言是否是某些允许值之一,如果不是,则将语言设置回默认语言,或者在您的情况下抛出 404。

    对于“允许值”,我从站点配置中读取它们,并在其中添加了一个新属性:

    <site name="website" ... permissableLanguages="pl-PL,en" language="pl-PL" ... />
    

    permissableLanguages 属性很方便,因为我们稍后在网站中向用户展示语言选择控件时也可以使用它。

    【讨论】:

      【解决方案2】:

      您可能想查看 Sitecore 共享源库中的 Language Fallback 模块。因为它涵盖了您的一些场景。

      http://trac.sitecore.net/LanguageFallback

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-03
        • 2013-02-23
        • 2011-12-19
        • 1970-01-01
        • 2020-05-20
        • 2011-08-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多