重写与跳转常被混为一谈。本文厘清 URL 重写的常见模式,并给出 301、302、307、308 的选型建议。

一、重写与跳转的区别

重写在服务端内部完成地址映射,客户端地址栏不变;跳转则会让客户端重新发起请求,地址栏随之改变。两者适用场景完全不同。

二、状态码选型建议

永久迁移用 301/308,临时跳转用 302/307。需要保留请求方法时优先考虑 307/308,避免方法被改写导致请求异常。

HTTP
301 Moved Permanently   // 永久,权重转移
302 Found               // 临时,方法可能被改写
307 Temporary Redirect  // 临时,保留方法
308 Permanent Redirect  // 永久,保留方法

三、常见陷阱

循环跳转与跳转链路过长都会显著影响体验。上线前建议对重写规则做一次全量校验,避免出现无限重定向。

以上内容为技术原理与实现思路的讲解,示例代码仅用于说明,请结合自身项目环境调整后使用。