You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何区分重定向Location头中的相对路径与新域名?

重定向中相对URL与新URL的区分规则及实际处理

判断逻辑

区分重定向指向的是相对路径还是完整新URL,核心看Location头的内容格式:

  • 如果Location值以协议前缀(如http://、https://)开头,这是完整的绝对URI,直接跳转至该地址即可,比如Location: http://baz.htm就会跳转到这个新域名地址。
  • 如果Location值没有协议前缀,那就是相对引用,需按以下三类规则基于当前请求的URI拼接:
    • 双斜杠开头(如//other.domain/path):属于网络路径引用,会沿用当前请求的协议(http/https),拼接成对应协议的完整地址。
    • 单斜杠开头(如/baz.htm):属于绝对路径引用,会使用当前请求的协议+域名,拼接成http://foo.bar/baz.htm这类地址。
    • 无斜杠开头(如baz.htm):属于相对路径引用,会基于当前请求的完整路径(含层级)拼接。如果当前请求是根路径http://foo.bar,就拼接为http://foo.bar/baz.htm;如果当前请求是http://foo.bar/sub/,则拼接为http://foo.bar/sub/baz.htm。

你的例子处理

当处于http://foo.bar时,收到Location = baz.htm,这个值既没有协议前缀,也不以斜杠开头,属于相对路径引用,因此应该跳转至http://foo.bar/baz.htm,而非http://baz.htm(后者只有当Location明确写为带协议的绝对URI时才会触发)。


内容的提问来源于stack exchange,提问作者Sim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:52:29