我有网站运行Sitecore 6.3。此网站包含一些子网站(例如www.a.com & www.b.com)。我想问:是否可以为这些网站创建单独的别名(例如,www.a.com/alias & www.b.com/alias应该重定向到不同的页面)。现在,如果为网站www.a.com创建别名,它也将在www.b.com上。任何想法如何管理? Thnx。Sitecore ASP.NET - 管理别名每个域
回答
这是可能的。我已经为此制作了Sitecore支持票。我也解决了这个问题,对我来说他们的解决方案工作得很好。 (尚未在实时网站上实施,因为我们尚未就成本达成协议)。这是你可能想看看一些示例代码:
class MultiSiteAliasResolver : AliasResolver
{
public new void Process(HttpRequestArgs args)
{
Assert.ArgumentNotNull(args, "args");
if (!Settings.AliasesActive)
{
Tracer.Warning("Aliases are not active.");
}
else
{
Sitecore.Data.Database database = Sitecore.Context.Database;
if (database == null)
{
Tracer.Warning("There is no context database in AliasResover.");
}
Item aliasItem = getAliasItem(args);
if (aliasItem != null)
{
LinkField linkField = aliasItem.Fields["Linked item"];
if (linkField != null)
{
Item AliasLinkedTo = Sitecore.Context.Database.GetItem(linkField.TargetID);
if (AliasLinkedTo != null)
{
Sitecore.Context.Item = AliasLinkedTo;
}
}
else
{
base.Process(args);
}
}
}
}
/// <summary>
/// Gets the alias item.
/// </summary>
/// <param name="args">The args.</param>
/// <returns></returns>
private Item getAliasItem(HttpRequestArgs args)
{
string websitePath = Sitecore.Context.Site.RootPath.ToLower();
if (args.LocalPath.Length > 1)
{
Item aliasItem = Sitecore.Context.Database.GetItem(websitePath + "/settings/aliassen/" + args.LocalPath);
if (aliasItem != null)
{
return aliasItem;
}
}
return null;
}
}
这个类可以被插入在web.config到位AliasResolver的。例如:
<processor type="CommandTemplates.Classes.MultiSiteAliasResolver, CommandTemplates" />
我希望这会为你工作,祝你好运!
更新:在我的示例中,我在每个网站节点“/ settings/aliassen /”下都有一个文件夹,这是我希望用户设置所有链接的位置。顺便说一句,还要注意,当您像这样更改AliasResolver时,标准Sitecore别名按钮触发的窗口将不再具有所需的功能。我没有时间去完成这项工作,但是您可以随时向内容管理者解释如何使用新解决方案。
谢谢,这正是我需要的! – user1300494 2012-03-30 08:59:00
这已经作为一个模块发布,您可以从http://marketplace.sitecore.net下载 - >多站点别名解析器 – Younes 2014-12-04 18:16:28
- 1. Sitecore域管理员无法登录
- 2. Sitecore CMS - 每种语言的域名
- 3. 管理子域名
- 4. 在多个“域名”上管理Cookie
- 5. 如何管理freenom域名
- 6. Rails 4 - 子域名管理
- 7. 如何创建一个管理员子域来管理Rails中的子域名
- 8. 创建一个sitecore管理网站
- 9. Google Analytics - 有2个域名的网站,如何分别跟踪每个域名?
- 10. Sitecore外联网管理员?
- 11. Sitecore CM StateServer会话管理
- 12. sitecore 7别名发布
- 13. Sitecore GetItemUrl()解析为别名
- 14. Sitecore LinkManager.GetItemUrl()解析为别名
- 15. 每个域名多个DKIM
- 16. ASP.NET MVC 3路由在/管理区域名称而不是id
- 17. 具有sitecore域名的匿名用户
- 18. Sitecore安全性:我如何允许角色管理某些域?
- 19. 托管在一个域中的多个sitecore实例
- 20. Git域名别名
- 21. 如何管理Sitecore中的时区?
- 22. 确定哪家公司管理域名
- 23. 命名空间管理区域
- 24. Azure - 自定义域名 - 高级管理
- 25. Magento管理员在子域名(admin.mystore.com)
- 26. 如何管理域名网址?
- 27. 冒充域名管理员的一个域名的驱动器用户
- 28. 如何在一个托管子域上管理多个asp.net应用程序?
- 29. 命名为 “名” 代理Django管理领域奇怪
- 30. 创建ASP.NET MVC4项目以连接到SiteCore主管进行管理访问
在Sitecore中默认没有这样做的方法。我会假定可以做出这个功能,但我不知道从哪里开始。也许尝试通过https://support.sitecore.net/helpdesk/Default.aspx询问Sitecore(需要访问权限,如果您已经使用Sitecore培训,则应该获得该权限) – Holger 2012-03-29 10:54:29
如果它对您有效,请接受答案... – 2012-04-02 12:44:43