重写与跳转常被混为一谈。本文厘清 URL 重写的常见模式,并给出 301、302、307、308 的选型建议。
一、重写与跳转的区别
重写在服务端内部完成地址映射,客户端地址栏不变;跳转则会让客户端重新发起请求,地址栏随之改变。两者适用场景完全不同。
二、状态码选型建议
永久迁移用 301/308,临时跳转用 302/307。需要保留请求方法时优先考虑 307/308,避免方法被改写导致请求异常。
HTTP
301 Moved Permanently // 永久,权重转移
302 Found // 临时,方法可能被改写
307 Temporary Redirect // 临时,保留方法
308 Permanent Redirect // 永久,保留方法三、常见陷阱
循环跳转与跳转链路过长都会显著影响体验。上线前建议对重写规则做一次全量校验,避免出现无限重定向。
以上内容为技术原理与实现思路的讲解,示例代码仅用于说明,请结合自身项目环境调整后使用。