我正在寻找最好的(或非常好的)" 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
我正在寻找以下行为:
我对于仅使用ASP.NET配置犹豫不决,因为我想在Kentico中维护解决方案,并且在添加新的404页面时不回收网站的应用程序池。
我的想法是创建一个自定义Web部件,我可以将其放到网站的全局404页面模板(每404的默认位置)。此Web部件将使用错误路径(ala querystring value aspxerrorpath =)来查看未找到的路径,然后检查它是否包含单词" blogs"或"合作伙伴"并将浏览器重定向到相应的子404页面。或者,是否有更简单的方法 - 可能使用页面别名和/或宏 - 同时保持Kentico内的解决方案?
我正在使用Kentico 9& 10.
答案 0 :(得分:1)
我不相信在Kentico中有一个很好的方法可以解决这个问题。最好的方法是在主web.config中添加<location>
元素,并在那里设置这些路径和404页面。
另一种可能是你提到的通过webpart管理它。但我可能会更进一步,并从中创建一个模块,以便您的webpart可以根据引用的URL或错误页面执行查找,并根据匹配的查找值执行任何自定义显示或重定向。
答案 1 :(得分:1)
我认为网站有多个404有点不自然。我认为你所描述的是Kentico方式。在这个常见的404页面上,您可以删除多个静态HTML Web部件并根据ErrorPath启用它们,如果没有匹配的ErrorPath,则您有一个通用的静态HTML Web部件来处理常见情况。 附:从技术上讲,你可以在IIS中为每个文件夹设置特定的web.config,并尝试使用它,但Kentico Tree纯粹是虚拟的,所以你所描述的几乎是Kentico方式。