【问题标题】:Best Kentico Way to Host Multiple 404 pages in the Content Tree在内容树中托管多个 404 页面的最佳 Kentico 方式
【发布时间】:2018-04-30 11:40:02
【问题描述】:

我正在寻找最好的(或非常好的)“Kentico 方式”来完成在内容树中包含多个 404 Not Found 页面,每个页面用于内容树的不同区域。

例如,假设以下带有博客项目和合作伙伴资料的假设内容树结构,

% Root Master
|__ Home
|__ Blog ._ Blog Item A 
         |_ Blog Item B
         |_ Blog Item C
         |_ 404 Page for Blogs
|__ Policy
|__ Partners ._ Partner Profile A
             |_ Partner Profile B
             |_ Partner Profile C
             |_ 404 Page for Partners
|_ Site 404 Page 

我正在寻找以下行为:

  • 如果用户访问一个不存在的博客项目 D,我希望显示 404 页面以显示博客。
  • 同样,如果用户访问不存在的合作伙伴资料 D,我希望显示合作伙伴的 404 页面。
  • 如果在站点中未找到任何其他页面,则应按照正常情况通过 Kentico 设置显示站点 404 页面。

我对是否只使用 ASP.NET 配置犹豫不决,因为我想在 Kentico 内部维护解决方案,并且在添加新的 404 页面时不回收网站的应用程序池。

我的直接想法是创建一个自定义 Web 部件,我可以将其放到站点的全局 404 页面模板(每个 404 的默认位置)。此 Web 部件将使用错误路径(ala 查询字符串值 aspxerrorpath=)来查看未找到的路径,然后检查它是否包含单词“博客”或“合作伙伴”并将浏览器重定向到适当的 sub-404 -page 分别。或者,是否有更简单的方法——可能使用页面别名和/或宏——同时将解决方案保留在 Kentico 中?

我正在使用 Kentico 9 和 10。

【问题讨论】:

    标签: http-status-code-404 kentico


    【解决方案1】:

    我不相信在 Kentico 内部有处理这个问题的好方法。最好的方法很可能是在您的主 web.config 中添加 <location> 元素并在其中设置这些路径和 404 页面。

    另一个可能是通过您提到的 Web 部件来管理它。但我可能会更进一步,并从中制作一个模块,以便您的 Web 部件可以根据相关的引用 URL 或错误页面执行查找,并根据匹配的查找值执行任何自定义显示或重定向。

    【讨论】:

    • 感谢布伦登提供的信息。这是有道理的。我没有想过模块策略。
    【解决方案2】:

    我认为网站有多个 404 有点不自然。我认为您描述的是 Kentico 方式。在这个常见的 404 页面上,您可以删除多个静态 HTML Web 部件并根据 ErrorPath 启用它们,如果没有任何 ErrorPath 匹配,您有一个通用的静态 HTML Web 部件来处理常见情况。 附言从技术上讲,您可以在 IIS 中为每个文件夹设置特定的 web.config 并尝试使用它,但 Kentico Tree 是纯虚拟的,因此您所描述的几乎是 Kentico 的方式。

    【讨论】:

    • 感谢 Shof 的确认。你是对的,因为树是虚拟的,所以我没有真正的方法来有效地使用 .net 配置。
    猜你喜欢
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 2016-01-21
    • 2016-01-13
    • 1970-01-01
    • 2014-11-19
    • 2012-08-15
    • 2013-12-23
    相关资源
    最近更新 更多