在内容树中托管多个 404 页面的最佳 Kentico 方式

Best Kentico Way to Host Multiple 404 pages in the Content Tree

我正在寻找最好的(或非常好的)"Kentico way" 来完成内容树中的多个 404 未找到页面,每个页面用于内容树的不同区域。

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

% 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 

我正在寻找以下行为:

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

我的直接想法是创建一个自定义 Web 部件,我可以将其放入站点的全局 404 页面模板(每个 404 的默认位置)。此 Web 部件将使用错误路径(ala querystring 值 aspxerrorpath=)来查看未找到的路径,然后检查它是否包含单词 "blogs" 或 "partners" 并将浏览器重定向到相应的子 404 页面。或者,是否有更简单的方法——可能使用页面别名 and/or 宏——同时将解决方案保留在 Kentico 中?

我正在使用 Kentico 9 和 10。

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

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

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