背景:我们正在为我们的网站用户提供创建筹款页面的能力。
TECHNOLOGIES :asp.net 3.5(网络表单),Sitecore CMS 6.4,IIS 7
问题:我正在尝试确定哪种网址方案对用户最方便,哪种方式从代码角度来看更易于维护。
创意#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项目。 (如果您不熟悉w / sitecore,您可以考虑尝试避免用户筹集资金的页面与您现有页面的名称相同的问题,使用子域名可以使这个问题更容易管理。我猜你也可以这样做没有子域只是将处理程序逻辑放在http请求管道的早期。)
当用户去分享他们的页面时,www.mysite.com/johnspage可能更容易为用户记住。他们可以简单地说去 mysite.com/johnspage 而不是 fundraising.mysite.com/johnspage 。子域使得URL与主站点不同,并且发音时间更长。当然用户可以剪切和粘贴我们提供给他们的任何网址,但如果他们口头上共享网址,那么拥有子网域可能会带来不便。
问题:您是使用子域还是指向主域,还是我不想到的另一种方法?您可以提供任何其他想法吗?
答案 0 :(得分:1)
也许我误解了你的问题,但这些陈述告诉我你不想为每个筹款页面提供实际的项目。
将每个筹款页面请求重定向到实际页面,该页面会查找用户筹款信息并显示
以及:
我们不希望用户筹款页面解析为sitecore项目
我可能会建议你研究使用'通配符'并设置一个结构,如:
/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