SEO

308 重定向

308 重定向是一种 HTTP 状态码(308 Permanent Redirect),用于告知浏览器和搜索引擎某个 URL 已永久迁移到新地址。与 301 重定向一样,它表示永久迁移,但有一个关键区别:在跟随重定向时,必须原封不动地保留原始 HTTP 方法(GET、POST 等)和请求体。

308 重定向是一种 HTTP 状态码(308 Permanent Redirect),用于告知浏览器和搜索引擎某个 URL 已永久迁移到新地址。与 301 重定向一样,它表示永久迁移,但有一个关键区别:在跟随重定向时,必须原封不动地保留原始 HTTP 方法(GET、POST 等)和请求体。

为什么它很重要

308 重定向在永久迁移期间将链接权重传递给新 URL,同时保留请求方法。Google 已正式确认,它对 308 重定向的处理方式与 301 重定向相同,包括 PageRank 的传递方式。从 SEO 角度看,301 和 308 都适用于永久迁移,但当涉及 POST 请求时,308 是更稳妥的选择。当搜索引擎收到 308 响应时,会随时间推移在索引中用新 URL 替代旧 URL,并把原 URL 累积的链接权重传递给新 URL。

与 301 的区别

属性308(永久重定向)301(永久迁移)
HTTP 方法保留严格保留(POST 仍为 POST)方法可能改变(POST 可能变为 GET)
永久性永久迁移永久迁移
链接权重传递传递给新 URL传递给新 URL
搜索索引旧 URL 由新 URL 替代旧 URL 由新 URL 替代
浏览器支持所有现代浏览器包括旧版在内的所有浏览器
主要适用场景需要保留 POST 的永久迁移一般性永久迁移

301 重定向自 HTTP/1.0 起就在使用,所有浏览器和爬虫都支持它,但部分客户端在历史上会在跟随 301 时把 POST 请求转换为 GET。308 状态码在 RFC 7538 中定义,用以解决这一问题。对于简单的页面迁移,301 已经足够,但对于 API 端点或表单提交 URL 的永久性变更,308 更为合适。

适用场景

  1. 永久迁移 API 端点:在重构 REST API URL 时,处理 POST、PUT 或 DELETE 请求的端点应使用 308 重定向,以确保客户端的请求方法得到保留。
  2. 永久更改表单提交 URL:当注册、支付或登录表单中处理 POST 请求的 URL 被永久更改时,308 重定向可防止用户提交的数据丢失。
  3. 保留 POST 的域名迁移:在迁移域名的同时也迁移接收 POST 请求的端点时,308 重定向可安全转发方法和数据。
  4. HTTPS 迁移:在永久从 HTTP 切换到 HTTPS 时,如果你想确保 POST 请求不被转换为 GET,使用 308 而非 301 更为精确。

相关 inblog 文章

inblog 如何提供帮助

inblog 的控制台对永久重定向使用 308 状态码。