gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:31:03 25 4
gpt4 key购买 nike

我有一个多站点 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com