如何使用xpath设置404页面

时间:2016-09-19 16:15:50

标签: xpath umbraco umbraco7

我正在使用Umbraco 7.5.2并且我正在尝试设置自定义404页面。
我在同一个Umbraco上托管2个完全不同的网站。





我在后台办公室和umbracoSettings.config中创建了我的页面类型和页面我添加了这个:




 < errors>&# XA; < error404> // errorListFolder / page [@nodeName ='404']< / error404>
  




哪个会找到该页面名称404来自errorListFolder下面的类型页面。





但我的两个网站的页面都相同(显示第一个网站上的那个)。如何修复它以在每个站点上显示相关的错误页面?





我已经尝试了




 < error404> $ site // errorListFolder / page [@ nodeName ='404']< / error404>
  




但它找不到任何东西,我将最终得到umbraco的基本错误页面





&# xA;


这是我的结构(为简单起见,我删除了其他节点)









评论





感谢Marcin,我可以用Nibble.Umbraco.PageNotFoundManager修复它。这是一个很棒的工具!但我需要提一下,你必须手动设置umbracoSettings.config恢复正常,否则它将无法工作。





我在该文件中有xpath,无论如何我在后台选择的东西,我看不到我的页面。然后我把它改回1,它就像一个魅力:)




1 个答案:

答案 0 :(得分:2)

您可以通过 $ root 元素访问特定树。从我们的一个项目中检查我的解决方案:

<error404>
    <errorPage culture="pl-PL">$root/homePage[@nodeName='PL']/hTMLContentPage[@nodeName='content not found TERROR - 808']</errorPage>
    <errorPage culture="en-US">$root/homePage[@nodeName='EN']/hTMLContentPage[@nodeName='content not found TERROR - 808']</errorPage>
    <errorPage culture="default">$root/homePage[@nodeName='PL']/hTMLContentPage[@nodeName='content not found TERROR - 808']</errorPage>
  </error404>

如上所示,第一个节点的原始名称为“内容未找到TERROR - 808 ”来自“ homePage ”类型的节点和特定的nodeName。

对于您的场景,您应该尝试由Tim Geyssens制作的 Umbraco Page Not Found Manager https://our.umbraco.org/projects/backoffice-extensions/umbraco-page-not-found-manager/(uHangout:https://www.youtube.com/watch?v=bFL0xUhRerI)。可能这是你正在寻找的东西。在配置文件中使用基本的error404设置来安排它可能很困难甚至不可能,特别是如果你想保留一些文化依赖404以前加入的树节点。

希望它能帮到你!