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