Thi*_*Guy 3 error-handling sitecore sitecore6
我有一个多站点Sitecore项目.我知道如何通过webconfig的ErrorPage,ItemNotFoundUrl,LayoutNotFoundUrl,LinkItemNotFoundUrl为一个站点处理错误页面.
但是,我想为每个站点显示不同的错误页面.我怎么能做到这一点?
小智 5
在任何情况下,您都可以/configuration/sitecore/sites/site通过扩展Sitecore.Sites.SiteContext类来将每个站点的错误页面的URL存储为web.config中元素的属性(有关扩展现有类的信息,请参阅参考资料).
所述SDN论坛帖子提供特别地约404的详细信息/ItemNotFound的条件,其中包括的扩展的一个例子Sitecore.SItes.SiteContext.
因为ItemNotFoundUrl,我认为这取决于您是使用项目还是文件作为404页面.如果使用项目处理404,则在项目解析器之后,将管理器添加到httpRequestBegin管道,以便在上下文项为空时将上下文项目设置为该站点的404项目.如果你使用的文件,那么我想重写Sitecore.Pipelines.HttpRequest.ExecuteRequest.HandleItemNotFound(),并Sitecore.Resources.Media.MediaRequestHandler.DoProcessRequest()和更新的web.config文件中相应的引用.
因为ErrorPage,我认为您必须覆盖Sitecore.Pipelines.RenderLayout.SecurityCheck.Process并更新web.config中的相应引用.
因为LayoutNotFoundUrl,我认为你必须覆盖Sitecore.Pipelines.HttpRequest.ExecuteRequest.HandleLayoutNotFound,并更新web.config中相应的引用.
因为LinkItemNotFoundUrl,我可能会在renderField管道中添加一个处理器,以使用适用于上下文站点的值替换设置的默认值.
如果这是一个常见的要求,我们应该将其转换为Sitecore共享源项目,或将其添加到现有项目中.
| 归档时间: |
|
| 查看次数: |
2948 次 |
| 最近记录: |