【问题标题】:Remove sitecore/content from URLs从 URL 中删除站点核心/内容
【发布时间】:2012-08-01 14:37:55
【问题描述】:

这里有没有人从 Sitecore 生成的 URL 中成功删除了 sitecore/content。

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

GetFriendlyUrl 方法似乎生成没有 sitecore/content 的 URL,但不幸的是它已被弃用,所以这里不是一个选项。

我看到有人建议覆盖 LinkProvider 并编写自定义逻辑以从 URL 中删除站点核心/内容。这确实有效,但不是一个好的解决方案。

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

仅供参考:我使用的是 Sitecore 6.4。

干杯!

【问题讨论】:

  • 您能从 sitecore 配置中粘贴 吗?
  • 您能粘贴一下您如何使用 LinkProvider 吗?
  • 阅读 Mark 的博文。您很可能在 部分中设置了不正确的内容。

标签: sitecore sitecore6


【解决方案1】:

请确保通过这篇博文正确配置您的网站:Have '/sitecore/content' in your URLs? Time to fix it.

【讨论】:

  • 虽然信息大同小异,但我最初是看这篇文章寻求帮助的:blog.paulgeorge.co.uk/2011/05/01/… 它基本上归结为当hostName包含通配符时使用targetHostName。 TargetHostName 是 SC6 only afaik
  • 谢谢马克,这些信息让我找到了解决方案。我的多站点配置是正确的。我只需要确保在生成链接时指定正确的上下文。我的回答如下。
【解决方案2】:

我找到了解决方案。根据 Mark 的参考,我的多站点配置是正确的。我解决此问题的方法是指定生成链接时要使用的站点上下文。

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

【讨论】:

    【解决方案3】:

    fyi,我发现以下 sn-p 可用于为我的场景识别正确的上下文站点,其中一个站点上下文的内容是从另一个站点上下文引用的。我正计划更新规范链接以通知 google 正确的 url。

    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));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 2018-12-25
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多