error-handling - Sitecore - 多站点错误页面处理

标签 error-handling sitecore sitecore6

我有一个多站点 Sitecore 项目。我知道如何通过 webconfig 的 ErrorPage、ItemNotFoundUrl、LayoutNotFoundUrl、LinkItemNotFoundUrl 处理一个站点的错误页面。

但是,我想为每个站点显示不同的错误页面。我怎样才能做到这一点?

最佳答案

在任何情况下,您都可以将每个站点的错误页面的 URL 存储为 /configuration/sitecore/sites/site 的属性。 web.config 中的元素通过扩展 Sitecore.Sites.SiteContext类( see for information about extending existing classes )。

SDN forum post提供有关 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 共享源项目,或者将它添加到现有项目中。

关于error-handling - Sitecore - 多站点错误页面处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4128197/

相关文章:

c# - 使用PowerCLI for .NET在VMware vSphere Client上拦截错误消息

javascript - 为什么通过 Twilio 获得意想不到的 token ?

.net - 创建大量 Sitecore 项目会导致内存泄漏

sitecore - 演示详细信息跨版本共享

haskell - 是否可以在 HUnit 中断言错误情况?

search - Sitecore 索引搜索

sitecore - 尽管存在内部构造函数,但仍允许使用 NSubstitute 创建 Sitecore 数据库

sitecore - 检查 Sitecore 中的链接类型

asp.net - 如何将 Sitecore Droptree 源设置为项目本身

python - 我是用户,我应该输入什么以引起此代码中的非值错误或零除错误? # python