gpt4 book ai didi

Sitecore ASP.NET - 管理每个域的别名

转载 作者:行者123 更新时间:2023-12-02 22:12:54 25 4
gpt4 key购买 nike

我的网站运行 Sitecore 6.3。该网站包括一些子网站(例如 www.a.com 和 www.b.com)。我想问:是否可以为该网站创建单独的别名(例如 www.a.com/alias 和 www.b.com/alias 应重定向到不同的页面)。现在,如果为网站 www.a.com 创建别名,它也会出现在 www.b.com 中。有什么想法如何管理这个吗?谢谢。

最佳答案

这是可能的。我已经为此制作了一张 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 Alias 按钮触发的窗口将不再具有所需的功能。我还没有时间找到实现这一目标的方法,但是您始终可以向内容管理员解释如何使用您的新解决方案。

关于Sitecore ASP.NET - 管理每个域的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9923606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com