HTTP 状态码 301:永久重定向
HTTP 状态码 301 表示永久重定向(Moved Permanently),它告诉客户端(例如浏览器)当前请求的资源已经被永久移动到新的位置,并建议使用新的 URL 来访问资源。
301 重定向的工作流程
- 客户端发起请求
- 用户访问一个旧的 URL,例如 http://example.com/old-page。
- 服务器响应 301
- 服务器返回状态码 301,并在 Location 响应头中提供新 URL,例如 http://example.com/new-page。
- 客户端自动跳转
- 客户端(如浏览器)会自动跳转到新 URL,并请求 http://example.com/new-page。
- 用户访问新页面
- 用户最终会看到重定向后的新页面内容。
301 重定向的用途
- 更改网站的 URL 结构:
- 当网站更新了 URL 结构(例如从 example.com/page 改为 example.com/new-page),可以使用 301 重定向将旧 URL 指向新 URL。
- 迁移域名:
- 当网站更换域名(例如从 oldsite.com 迁移到 newsite.com),可以通过 301 重定向将所有旧域名的流量引导到新域名。
- SEO 优化:
- 301 重定向会将原页面的搜索引擎权重(PageRank)传递到新页面,避免因 URL 变更而丢失排名。
- 修正错误的 URL:
- 如果某些用户或爬虫访问了错误的 URL,可以通过 301 重定向将它们引导到正确的页面。
301 与其他重定向的区别
状态码 | 名称 | 特点 |
---|---|---|
301 | 永久重定向 | URL 永久更改,搜索引擎会更新索引并传递权重。 |
302 | 临时重定向 | URL 临时更改,搜索引擎不会传递权重,依然索引旧地址。 |
307 | 临时重定向(HTTP 1.1) | 与 302 类似,但更严格,必须使用原请求方法(如 GET 或 POST)。 |
308 | 永久重定向(HTTP 1.1) | 类似 301,但要求客户端保留原请求方法(如 POST 不会变成 GET)。 |