在 Nginx Proxy Manager(NPM)里设置 www → 非 www 重定向 时,会让你选 301、302、303、307、308 这几种重定向状态码。
它们的区别主要在于“是否永久”和“是否保留请求方法(GET/POST)”。
📘 各状态码对比
| 状态码 | 是否永久 | 是否改变请求方法 | 典型用途 |
|---|---|---|---|
| 301 | ✅ 永久 | 可能改为 GET(浏览器会) | SEO 友好,域名规范化、网站迁移 |
| 302 | ❌ 临时 | 会改为 GET | 临时跳转、调试用 |
| 303 | ❌ 临时 | 强制改为 GET | 用于表单提交后跳结果页 |
| 307 | ❌ 临时 | ✅ 保留原方法(POST 等) | 临时重定向但保留请求体 |
| 308 | ✅ 永久 | ✅ 保留原方法 | 永久跳转且保留方法(新标准) |
✅ 为什么选 301
- 这是搜索引擎认定的“永久搬家”信号,有利于 SEO。
- 浏览器会缓存 301,后续直接访问非 www。
- 你的重定向只是域名规范化(不会涉及 POST 请求),因此 301 完全合适。
- 若你担心浏览器缓存太久,可以后续改成 308,但 301 是最通用兼容的。
🚫 不推荐使用的场景
- 302 / 307 → 临时性用途,SEO 会认为两个域名同时存在,不利于权重集中。
- 303 → 专门用于表单跳转,不适合网站域名跳转。
- 308 → 也可以,但部分旧浏览器(尤其移动端)兼容性比 301 稍差。







