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

如何用cURL跟随重定向但忽略302临时跳转?

解决cURL跟随重定向但跳过302响应的问题

cURL本身没有直接提供“仅忽略302重定向”的单一参数,但可以通过脚本逻辑结合cURL的参数实现需求,以下是两种可行方案:

方案1:先检查响应码,再决定是否跟随重定向

先发送HEAD请求获取目标URL的响应码,若响应码不是302,则执行带-L的下载命令;若为302,则终止操作避免跳转到无效地址。

示例脚本片段:

URL="https://go.microsoft.com/fwlink/p/?linkid=2"

# 获取响应码
RESPONSE_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$URL")

if [ "$RESPONSE_CODE" != "302" ]; then
    # 非302响应,跟随重定向下载
    curl -LOJ "$URL"
else
    echo "检测到302重定向,终止下载"
fi

方案2:利用cURL的--location配合自定义重定向规则

通过--write-out捕获最终跳转后的响应信息,结合逻辑判断是否是因302跳转至无效地址(比如搜索引擎)。这种方式适合你明确无效跳转目标特征的场景:

URL="https://go.microsoft.com/fwlink/p/?linkid=2"

# 执行下载并捕获最终URL
FINAL_URL=$(curl -s -L -w "%{url_effective}" -o temp_file "$URL")

# 判断最终URL是否包含搜索引擎特征(比如bing.com)
if [[ "$FINAL_URL" == *"bing.com"* ]]; then
    # 无效跳转,删除临时文件并提示
    rm temp_file
    echo "检测到跳转至搜索引擎,终止下载"
else
    # 有效下载,保留文件
    echo "文件下载完成"
fi

补充说明

  • 方案1更直接针对302响应码,适合需要排除所有302跳转的场景;
  • 方案2更灵活,适合部分302跳转合法有效,仅需排除跳转到特定无效地址的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:50:27