Это возможно. Я уже сделал билет поддержки 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, больше не будет обладать необходимой функциональностью. У меня не было времени найти способ заставить это работать, однако вы всегда могли объяснить менеджерам контента, как работать с вашим новым решением.