TrueURL
TrueURL

菜单

308 永久重定向

308 永久重定向:保留请求方法和请求体。与 301 一样,今后应使用新 URL,但 POST 永远不会变成 GET。

原因短语
Permanent Redirect
是否重定向
是
默认可缓存
是

308 Permanent Redirect 表示目标资源有了新的永久 URL(由 Location 给出),客户端必须在不改变方法和请求体的情况下向该 URL 重新发送请求。它相当于保留请求方法的 301 Moved Permanently,正如 307 相当于保留请求方法的 302。它最早在 RFC 7238(2014 年)中提出,RFC 7538(2015 年)将其升级为正式标准,现在则是 RFC 9110 的一部分。

与 301 一样,308 可以被启发式缓存,因此浏览器会记住它,下次直接前往新 URL。当前所有浏览器、主要爬虫和常用 HTTP 库都支持 308;只有非常老旧的客户端(例如 Windows 7 上的 Internet Explorer)不支持。

响应示例

HTTP
HTTP/1.1 308 Permanent Redirect
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: /docs/
Content-Type: text/plain; charset=utf-8
Content-Length: 21

Redirecting to /docs/

SEO 与重定向检测

Google 对 308 的处理与 301 相同:将其视为“目标 URL 是新的规范 URL”的强信号,因此新 URL 会在搜索结果中取代旧 URL。当必须保留请求方法时(API、表单端点),或者所用平台默认使用 308 时,就用 308;对于普通的页面迁移,301 和 308 在 SEO 上效果相同。

Next.js 和 Vercel 等平台对永久重定向和末尾斜杠规范化使用 308。301 重定向检测会显示每一跳是永久重定向(301 或 308)还是临时重定向,URL 末尾斜杠检测则会同时测试 URL 的两种写法。

常见原因与使用场景

  • 框架的永久重定向,例如 Next.js 中的 permanent: true、Vercel 重定向规则或 CDN 规则。
  • 需要保留请求方法的末尾斜杠或大小写规范化。
  • API 端点已永久迁移,而客户端仍在向旧 URL 发送 POST 或 PUT。
  • 平台或代理使用 308 将 HTTP 升级到 HTTPS。

301 重定向检测

使用免费的 TrueURL 重定向检测工具,逐跳查看一个 URL 返回的每一个状态码。