我有Sitecore网站,网址为http://www.abc.com/our-resorts/resort1/career.aspx,但我想缩短URL,例如http://www.abc.com/resort1/career.aspx。任何想法如何our-resorts
从URL中删除。
请来自Sitecore社区的任何人帮助我....
谢谢
我想到的第一个答案是使用自定义LinkProvider
(在网站上生成网址)和自定义ItemResolver
(在出现缩短的网址时解析项目)。
MyLinkProvider
继承Sitecore.Links.LinkProvider
和重写GetItemUrl
方法。如果网址包含/our-resorts/
,请删除our-resorts
。当然,这假定您没有名称our-resorts
不应该在链接生成中省略的项目。用LinkProvider
新的替换在Sitecore.config标准中。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);
}
}
我尚未编译或测试代码,因此您需要自己进行测试。如果您还有其他问题,请在下面发布。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句