The first answer that comes to my mind is to use custom LinkProvider(to generate URLs on the site) and custom ItemResolver(to solve issues when a shortened URL occurs).
MyLinkProvider, Sitecore.Links.LinkProvider GetItemUrl. url /our-resorts/, our-resorts. , , our-resorts, . Sitecore.config LinkProvider .MyItemResolver, HttpRequestProcessor, <httpRequestBegin> ItemResolver. :
public class ItemResolver : HttpRequestProcessor
{
public override void Process(HttpRequestArgs args)
{
if (Context.Item != null || Context.Database == null || args.Url.ItemPath.Length == 0)
return;
string path = "/our-resorts" + MainUtil.DecodeName(args.Url.ItemPath);
Context.Item = args.GetItem(path);
}
}
, . , .