维护页面重定向的正确状态代码?

Posted

技术标签:

【中文标题】维护页面重定向的正确状态代码?【英文标题】:Proper status code for a maintenance page redirect? 【发布时间】:2009-11-09 15:04:45 【问题描述】:

在执行一些即将进行的维护时,我将不得不将所有站点流量短暂地重定向到维护页面。用于重定向的正确状态代码是什么?

503 是有道理的,但从技术上讲,它不是重定向状态。 302 是一个临时重定向,但想知道如果该网站当时正在被爬网,这是否会产生影响。

【问题讨论】:

这是一个有趣的问题。谷歌似乎并没有对此发表官方声明:google.com/search?q=site%3Agoogle.com+http+redirects+-301 Google 已经发布了他们对此的看法。它或多或少符合约翰内斯的回答。 googlewebmastercentral.blogspot.com/2011/01/… 【参考方案1】:

我也会使用 503 和 Retry-After 标头。一个合适的机器人应该知道如何处理这个问题。

【讨论】:

【参考方案2】:

302 Found 可能是经典方式 - 不是永久重定向。但是你希望它是暂时的,所以当蜘蛛回来时,它会再试一次,但什么时候,它应该备份。 301 表示不转到原件。

500 series 是错误,不是您想要指出的。

【讨论】:

是的,但 503 确实明确表示停机进行维护,这显然是比 500 更不严重的错误。【参考方案3】:

使用 503,如果您想重定向,请通过服务页面上的 javascript 进行。

请注意不要丢失原始 URL(例如,将其保存为查询参数),因为用户希望在维护完成后返回到他们正在寻找的页面。

【讨论】:

以上是关于维护页面重定向的正确状态代码?的主要内容,如果未能解决你的问题,请参考以下文章

正确登录后如何重定向用户?

使用 PHP 进行 301 或 302 重定向

如何为 HTTPS 配置 503 状态?

身份验证重定向失败

Spring Security 禁用登录页面/重定向

重定向到 React 中的另一条路线时如何传递状态/道具?