如何使用xpath设置404页面
How to set 404 page using xpath
我正在使用 Umbraco 7.5.2,我正在尝试设置自定义 404 页面。
我在同一个 Umbraco 上托管 2 个完全不同的站点。
我已经在后台和 umbracoSettings.config 中创建了我的页面类型和页面,我添加了这个:
<errors>
<error404>//errorListFolder/page[@nodeName = '404']</error404>
它将从 errorListFolder 正下方的类型页面中找到名称为 404 的页面。
但是我的两个网站的这个页面是相同的(显示第一个网站上的页面)。我怎样才能修复它以在每个站点上显示相关的错误页面?
我试过了
<error404>$site//errorListFolder/page [@nodeName='404']</error404>
但它没有找到任何东西,我将以 umbraco 的基本错误页面结束
这是我的结构(为简单起见,我删除了其他节点)
评论
感谢 Marcin,我可以用 Nibble.Umbraco.PageNotFoundManager 修复它。这是一个很棒的工具!但我需要提一下,你必须手动设置 umbracoSettings.config 恢复正常,否则将无法正常工作。
我在该文件中有 xpath,无论我在后台 select 做什么,我都看不到我的页面。然后我把它改回 1,它就像一个魅力:)
您可以从 $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>
它从类型为“homePage”的节点和特定节点名称中获取原始名称为“content not found TERROR - 808”的第一个节点如您所见。
对于您的场景,您应该尝试 Umbraco Page Not Found Manager,由 Tim Geyssens 制作:https://our.umbraco.org/projects/backoffice-extensions/umbraco-page-not-found-manager/ (uHangout: https://www.youtube.com/watch?v=bFL0xUhRerI)。可能这就是您正在寻找的东西。在配置文件中使用基本的 error404 设置可能很难甚至不可能安排它,特别是如果你想在先前访问的树节点下保留一些依赖于 404 的文化。
希望对您有所帮助!
我正在使用 Umbraco 7.5.2,我正在尝试设置自定义 404 页面。 我在同一个 Umbraco 上托管 2 个完全不同的站点。
我已经在后台和 umbracoSettings.config 中创建了我的页面类型和页面,我添加了这个:
<errors>
<error404>//errorListFolder/page[@nodeName = '404']</error404>
它将从 errorListFolder 正下方的类型页面中找到名称为 404 的页面。
但是我的两个网站的这个页面是相同的(显示第一个网站上的页面)。我怎样才能修复它以在每个站点上显示相关的错误页面?
我试过了
<error404>$site//errorListFolder/page [@nodeName='404']</error404>
但它没有找到任何东西,我将以 umbraco 的基本错误页面结束
这是我的结构(为简单起见,我删除了其他节点)
评论
感谢 Marcin,我可以用 Nibble.Umbraco.PageNotFoundManager 修复它。这是一个很棒的工具!但我需要提一下,你必须手动设置 umbracoSettings.config 恢复正常,否则将无法正常工作。
我在该文件中有 xpath,无论我在后台 select 做什么,我都看不到我的页面。然后我把它改回 1,它就像一个魅力:)
您可以从 $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>
它从类型为“homePage”的节点和特定节点名称中获取原始名称为“content not found TERROR - 808”的第一个节点如您所见。
对于您的场景,您应该尝试 Umbraco Page Not Found Manager,由 Tim Geyssens 制作:https://our.umbraco.org/projects/backoffice-extensions/umbraco-page-not-found-manager/ (uHangout: https://www.youtube.com/watch?v=bFL0xUhRerI)。可能这就是您正在寻找的东西。在配置文件中使用基本的 error404 设置可能很难甚至不可能安排它,特别是如果你想在先前访问的树节点下保留一些依赖于 404 的文化。
希望对您有所帮助!