首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >子文档可以继承Kentico中其父文档的自定义URL路径吗?

子文档可以继承Kentico中其父文档的自定义URL路径吗?
EN

Stack Overflow用户
提问于 2014-10-08 18:43:32
回答 1查看 328关注 0票数 0

我有一个情况,我的客户希望有SEO友好的URL,为他们的文档和这些URL下流到客户端文档。下面是一个示例设置:

根部

  • 群组

代码语言:javascript
运行
复制
- Group1 (custom url=/groups/ma/salem/group1)
代码语言:javascript
运行
复制
    - Page1
    - Page2

代码语言:javascript
运行
复制
- Group2 (custom url=/groups/ma/boston/group2)
代码语言:javascript
运行
复制
    - Page2
    - Page4

代码语言:javascript
运行
复制
- etc.

url希望Page1、Page2、Page3、Page4继承其父级的自定义url,并且是:

  • /group/ma/salem/group 1/page1 1
  • /group/ma/salem/group 1/page2 2
  • /群/马/波士顿/组2/页2
  • /群/马/波士顿/组2/页3

当我设置自定义URL路径时,它只影响该文档,子文档保持不变:

  • /组/组1/页1
  • /组/组1/页2
  • /组/组2/页2
  • /组/组2/页3

可以在Kentico中实现这一点,而不需要修改树结构以包含URL部分?

有没有一种方法可以覆盖ResolveURL()函数,这样我就可以返回SEO友好的URL了吗?

我用的是Kentico 8.1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-10 13:21:25

在树中创建这些文档肯定是最简单和最安全的解决方案,但是为了避免这种情况,我看到了另外两个选项。

1)创建URL重写规则来模拟这种树的层次结构

2)捕获事件前插入的文档,并根据需要设置自定义URL路径。

代码可能如下所示:

代码语言:javascript
运行
复制
DocumentEvents.Insert.Before += DocumentInsert_Before;

private static void DocumentInsert_Before(object sender, DocumentEventArgs e)
{
    TreeNode node = e.Node;

    if (node.NodeAliasPath.StartsWith("/groups/group1")) {
        string safeNodeName = TreePathUtils.GetSafeDocumentName(node.DocumentName, CMSContext.CurrentSiteName);
        string customPath = "/groups/ma/salem/group1/" + safeNodeName;

        // Handle multiple dashes
        customPath = TreePathUtils.GetSafeUrlPath(path, CMSContext.CurrentSiteName, true);

        node.DocumentUrlPath = customPath;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26264157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档