【问题标题】:User created/dynamic pages - Need input on forming Urls用户创建/动态页面 - 在形成 URL 时需要输入
【发布时间】:2012-02-20 20:09:12
【问题描述】:

背景:我们让网站用户能够创建筹款页面。

技术:asp.net 3.5(网络表单)、Sitecore CMS 6.4、IIS 7

ISSUE:我正在尝试确定哪种 url 方案对用户最方便,从代码的角度来看哪种更易于维护。

想法 #1:创建一个子域 -fundraising.mysite.com/johnspage

想法 #2:使用主域 - www.mysite.com/johnspage

以下是关于是否使用子域的一些想法。

想法

  • 我们使用的是 Sitecore CMS 6.4,因此如果我们使用子域,我们将不会创建单独的网站。子域将简单地指向主域。

  • 如果我们使用子域或不使用子域,我计划有一个处理程序将每个筹款页面请求重定向到一个实际页面,该页面查找用户筹款信息并显示它。 (处理程序将注入一个 cookie 或查询字符串)。 如果我们使用子域,我们的处理程序会更容易知道请求是针对筹款页面的

  • 如果我们使用子域,我希望我们的处理程序重定向到我们的实际站点。这将避免域和子域之间的 cookie 问题。 (当然可以克服 cookie 问题,但我想避免它们开箱即用)。因此,如果请求是fundraising.mysite.com/johnspage,则处理程序会将其转换为www.mysite.com/actualpage?parameters...(或者可能使用cookie)

  • 使用子域,我们可以避免用户创建与现有“真实”页面同名的页面的问题。我们正在使用 Sitecore CMS,因此 Sitecore 中实际上并不存在页面,但我们不希望用户筹款页面解析为 sitecore 项目。 (如果您不熟悉站点核心,您可以考虑尝试避免用户筹款页面与您现有页面之一同名的问题,使用子域使这个问题更容易管理。我想你也可以在没有子域的情况下执行此操作,只需将处理程序逻辑放在 http 请求管道的早期)。

  • 当用户去分享他们的页面时,www.mysite.com/johnspage 可能更容易让用户记住。他们可以简单地说去 mysite.com/johnspage 而不是 fundraising.mysite.com/johnspage。子域使 url 与主站点不同,并且发音时间更长。当然,用户可以剪切和粘贴我们给他们的任何网址,但如果他们口头分享网址,那么拥有子域可能会很不方便。

问题:您会使用子域还是指向主域,还是我没有想到的另一种方法?您还有什么想法可以提供吗?

【问题讨论】:

    标签: asp.net url sitecore


    【解决方案1】:

    也许我误读了您的问题,但这些陈述告诉我您不希望每个筹款“页面”都有一个实际项目。

    将每个筹款页面请求重定向到查找用户筹款信息并显示的实际页面

    还有:

    我们不希望用户筹款页面解析为站点核心项目

    我可能会建议您考虑使用“通配符”并设置如下结构:

    /sitecore/content/home/fundraisers/*
    

    现在,您的通配符页面的子布局/渲染将负责解析特定用户、获取数据并进行渲染。

    Sitecore Wildcards 上有一堆资源比如: http://www.sitecore.net/Community/Technical-Blogs/Getting-to-Know-Sitecore/Posts/2011/09/Wildcards-and-Data-Driven-URLs.aspx

    【讨论】:

    • 嗨,肖恩 - 非常好的建议,谢谢。我会投票赞成您的回复,但我没有声誉:)。我知道我的营销团队对 URL / 感到很兴奋,但是拥有 /fundraisers/ 应该很容易销售。
    • 在阅读了 Sitecore 通配符之后,我们可以拥有 / 或 /fundraisers/。很酷的概念。我会将此标记为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 2014-12-01
    • 2018-11-22
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多