从URL中删除sitecore / content

时间:2012-08-01 14:37:56

标签: sitecore sitecore6

此处是否有人成功从Sitecore生成的网址中删除了网站核心/内容。

我正在使用Sitecore链接管理器生成网址。我有一个多站点设置并已启用Siteresolving选项为true。但是,似乎没有办法使用链接管理器使其工作。

GetFriendlyUrl方法似乎生成没有sitecore / content的URL,但遗憾的是它已被弃用,因此它不是一个选项。

我见过有人建议覆盖LinkProvider并编写自定义逻辑以从URL中删除sitecore / content。这确实有效但不是一个好的解决方案。

我很想在这里向其他Sitecore专家学习。

仅供参考:我正在使用Sitecore 6.4。

干杯!

3 个答案:

答案 0 :(得分:4)

请从此博文中确保您的网站配置正确:Have '/sitecore/content' in your URLs? Time to fix it.

答案 1 :(得分:3)

我找到了解决方案。根据马克的参考资料,我的多站点配置是正确的。我为解决这个问题所做的是指定生成链接时要使用的站点上下文。

Sitecore.Links.UrlOptions URLOptions = new Sitecore.Links.UrlOptions();
URLOptions.Site = Sitecore.Configuration.Factory.GetSite(Your_Site_Name);
return Sitecore.Links.LinkManager.GetItemUrl(ThisItem, URLOptions);

答案 2 :(得分:0)

fyi,我发现以下代码段对于为我的场景识别正确的上下文站点非常有用,其中一个站点上下文的内容是从另一个站点上下文引用的。我打算更新规范链接以通知谷歌正确的网址。

public static Sitecore.Web.SiteInfo GetSite(this Sitecore.Data.Items.Item itemYouNeedToCheck)
{
return Sitecore.Configuration.Factory.GetSiteInfoList()
    .OrderByDescending(x=> x.RootPath.Length)
    .FirstOrDefault(x => x.Database!="core" &&    itemYouNeedToCheck.Paths.FullPath.StartsWith(x.RootPath));
}