Sitecore使用"302 found"将用户重定向到我的自定义404页面 - 这是合法的吗?

Geo*_*rge 7 http sitecore sitecore6 http-status-code-404 http-status-code-302

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

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

<setting name="ItemNotFoundUrl" value="/404.aspx" />
Run Code Online (Sandbox Code Playgroud)

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

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

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

这是一个问题吗?即Google和其他搜索引擎会将我的404页面编入网址www.example.com/xyz吗?有问题的网站最初设置为从404页面返回"200 OK"响应(不好!),因此搜索引擎一旦找到网站的链接断开,就会将网站编入索引404页面.

我假设因为302只是一个重定向,所以最终(自定义404)URL的状态代码将是任何客户端应该假定应用于初始(重定向)URL的状态代码.

如果这不是问题,那么规范的规范/文档是什么呢?

jam*_*kam 10

除了Ruud所建议的内容之外,Kern Herskind还发布一篇博文,其中使用了Sitecore/IIS方法而无需编写任何其他代码.


Ruu*_*ier 3

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

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

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