繁体   English   中英

Sitecore语言嵌入多个站点

[英]Sitecore Language Embedding multiple sites

我想在一个Sitecore安装下运行两个站点。

第一个网站只有英文版,因此我不会在文件路径中包含该语言。 languageEmbedding=never

第二个站点将使用多种语言,我需要在文件路径中包含该语言。 languageEmbedding=always

有没有办法可以定义多个链接管理器并配置站点以使用特定的链接管理器?

我发现最好的方法是创建一个支持这两种方案的自定义链接管理器。 然后有一个支持配置设置,定义语言是否嵌入。

public class LanguageLinkProvider : LinkProvider
{
    public override string GetItemUrl(Item item, UrlOptions urlOptions)
    {
        urlOptions.SiteResolving = Configuration.Settings.Rendering.SiteResolving;
        string sites = ConfigurationManager.AppSettings["EmbedLanguageInUrl"];

        var splitSites = new List<string>();
        if (!string.IsNullOrEmpty(sites))
            splitSites = sites.Split(';').ToList();

        if (splitSites.Contains(urlOptions.Site.Name))
            urlOptions.LanguageEmbedding = LanguageEmbedding.Always;
        else
            urlOptions.LanguageEmbedding = LanguageEmbedding.Never;

        return base.GetItemUrl(item, urlOptions);
    }
}

不,默认情况下。 但LinkManager是可重写的。 您可以通过为每个站点选择不同的配置并将其编码为重写的LinkManager来更改行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM