我希望在一个 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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)