我想将 Sitecore 项目用作 404 页面,以便为不同的站点翻译 404 和单独的 404 页面。我创建了一个名为 Render404 的子布局,其中唯一的代码是在响应中设置 HTTP 状态代码,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
this.Response.StatusCode = 404; //gotta set our HTTP response code, otherwise this rendering does nothing
}
我创建了一个测试 404 页面并放入此渲染中。在我的浏览器中加载页面。效果很好,得到预期的 404 代码。
然后我把它推到了现场。失败得很惨。当我尝试直接访问我的测试 404 时,Sitecore 不断地为我提供默认的 ItemNotFoundUrl 页面。真正奇怪的是它在预览中运行良好,这让我认为这是一个发布问题。但事实并非如此。这些项目在 Web DB 中显示良好。此外,如果我删除 404 控件,页面呈现正常并且没有重定向。Sitecore 在某处看到 404 状态并进行重定向。即使有一个上下文项。而且这种行为不会发生在我的开发系统中。
建议?
更多信息:我已经尝试过使用 ServerSideRedirect true/false。不会改变任何东西。