【问题标题】:Using status code 500 for reporting unhanded errors使用状态码 500 报告未经处理的错误
【发布时间】:2013-09-01 23:15:37
【问题描述】:

我在我的 php 代码中使用header("HTTP/1.0 500 Internal Server Error"); 来输出内部错误,例如数据库查询是否有问题。

该过程将记录异常并返回状态码 500。我使用此技术是因为 ajax 请求错误函数将自动检测为错误响应并触发$(document).ajaxError();。虽然这可行,但我不确定这是否会对 SEO 实践产生任何负面影响。谁能告诉我使用它是否会有任何负面影响。

【问题讨论】:

  • 我不是 SEO 专家,但只要您不将演示逻辑依赖于 500,您应该没问题。我的意思是不要使用ajax显示一些内容,因为它是正常页面并返回500。说,发生了一些事情,再回来。
  • 感谢您的回复。我正在使用 window.location 将用户重定向到显示 500 错误的不同页面。由于它是一个 ajax 请求,我不能强制 php 重定向它,所以我使用 javascript 重定向到自定义 500 页面。这是你说我应该做的吗?

标签: php ajax jquery http-headers


【解决方案1】:

恰恰相反,这将对 SEO 实践产生极其积极的影响。

搜索引擎鼓励您使用正确的 HTTP 代码,而不是为错误页面吐出 200 OK。如果为 200,它将索引错误页面,而不是仅仅将其标记为稍后访问。

虽然我不确定机器人是否会调用你的 AJAX 例程。

【讨论】:

  • 感谢您的回复。目前,我从我的 ajax 错误方法中检测到状态代码 500 并使用 javascript 重定向方法将用户重定向到错误页面。一旦这个重定向完成,错误页面的标题将是 200,因为它是一个正常的重定向。因为这首先会破坏使用状态 500 的全部目的。有没有其他正确的方法。
  • 我不太了解,但最好避免重定向。为什么不使用相同的 jquery 方法?您使用 AJAX 的目的不是为了消除页面重新加载吗?
  • 是的,我在 jquery 中使用 $.ajax 方法。我使用它来避免重定向,但如果服务器端出现异常。我认为在不同的页面中显示错误会更合适。当我这样做时,错误页面的状态为 200。既然您告诉我错误页面的状态最好不要为 200。我正在寻找一种方法来实现它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
  • 2021-03-15
  • 2020-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多