7

这更像是一个 HTTP 规范问题,而不是 Sitecore 问题。

我在 Sitecore 中设置了 404 错误页面:

<setting name="ItemNotFoundUrl" value="/404.aspx" />

因此,当用户访问一个不存在的页面(例如 www.example.com/xyz)时,他们会被重定向到我的自定义 404 页面(例如 www.example.com/404.aspx)。

Sitecore 使用 302 执行重定向,如下面的 Firebug 屏幕截图所示:

302 找到重定向到 404 文件未找到

这是一个问题吗?即,Google 和其他搜索引擎会将我的 404 页面索引到 URL www.example.com/xyz 吗?有问题的站点最初设置为从 404 页面返回“200 OK”响应(糟糕!),因此每当搜索引擎发现站点的断开链接时,它们就会索引站点 404 页面。

我假设由于 302 只是一个重定向,因此最终(自定义 404)URL 的状态代码将是任何客户端都应该假设适用于初始(重定向)URL 的内容。

如果这不是问题,那么说明这一点的规范规范/文档是什么?

4

3 回答 3

10

正如 Ruud 所建议的那样,Kern Herskind 的一篇博客文章使用了 Sitecore/IIS 方法,而无需编写任何额外的代码。

于 2013-01-10T14:30:12.383 回答
4

如前所述,正确的 http 响应标头至关重要,不仅对于 SEO,而且对于许多其他用例。

有一个名为“Sitecore 错误管理器”的 Sitecore 共享源模块,它可以让您的 Sitecore 安装响应正确的 404 标头,并附带一些其他功能,例如配置任何其他错误响应,即使是 Sitecore 媒体库(即 pdf 文件),多语言支持等

Sitecore 市场:http ://marketplace.sitecore.net/en/Modules/Sitecore_Error_Manager.aspx

Github:https ://github.com/unic/SitecoreErrorManager

于 2013-01-11T19:46:12.837 回答
3

这确实是个问题。因为 google 现在会认为该404.aspx页面不存在,并且会认为不存在的项目被临时重定向。

我为此想出了一个解决方案,并在此处发布了有关它的博客

它所做的基本上是确定该项目不存在(通过管道处理器),然后通过使用 WebRequest 请求它来检索 404 页面的内容,并将该内容与 404 状态代码一起返回给浏览器。

于 2013-01-10T08:02:53.863 回答