“Redirecting to http://...”是本地网络重定向循环所致,主因是代理/hosts/DNS劫持导致302跳转闭环,需通过curl -v和nslookup验证并清除HTTP_PROXY、hosts条目或关闭代理工具。

Composer install报错“Redirecting to http://...”是重定向循环
这不是 Composer 本身的问题,而是你本地网络层把 packagist.org 的 HTTPS 请求,强制跳转到某个本地地址(比如 http://127.0.0.1:8080),而那个地址又返回 302 跳回 packagist.org,形成闭环。现象就是命令行反复打印 Redirecting to http://...,最终超时或报 cURL error 7: Failed to connect。
常见诱因包括:
-
HTTP_PROXY或HTTPS_PROXY环境变量指向了不支持 HTTPS 重定向的本地代理(如旧版 Charles、Fiddler 或某些调试工具) -
/etc/hosts(Linux/macOS)或C:\Windows\System32\drivers\etc\hosts(Windows)里写了127.0.0.1 packagist.org这类条目 - 公司路由器或 DNS 服务劫持了
packagist.org解析,返回内网 IP
验证是否真有重定向循环:用 curl -v 直连
别信 Composer 日志,直接绕过它测底层网络:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
- 运行
curl -v https://packagist.org/packages.json,重点看输出里有没有< HTTP/2 302和< location:行;如果location指向http://localhost或http://127.0.0.1,就是本地劫持 - 再跑
nslookup packagist.org,检查返回的 IP 是否为官方地址:146.75.119.170(IPv4)或2a02:6b8::146:75:119:170(IPv6);如果不是,说明 DNS 被污染或 hosts 干预
临时清理源路由缓存:绕过代理和 hosts
不要一上来就改全局配置,先最小干预验证问题根源:
- 临时清空代理变量:
HTTP_PROXY= HTTPS_PROXY= composer install - Linux/macOS 下强制解析到真实 IP:
curl --resolve packagist.org:443:146.75.119.170 https://packagist.org/packages.json(要求 curl ≥ 7.21.3) - Windows 下可手动指定 IP + Host 头:
curl -H "Host: packagist.org" https://146.75.119.170/packages.json - 临时切镜像验证(注意末尾斜杠):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,然后立刻composer clear-cache
为什么“清理源路由缓存”不能只靠 composer clear-cache
composer clear-cache 只清 ~/.composer/cache/ 里的包文件和元数据,对重定向循环完全无效——问题压根不在 Composer 缓存,而在系统 DNS、hosts 或代理设置。很多人反复执行 clear-cache 却没效果,就是因为没意识到:重定向发生在 TCP 握手甚至 DNS 查询阶段,Composer 还没开始下载就已经被系统层劫持了。
真正要清理的,是 /etc/hosts 里的错误条目、终端里残留的 HTTP_PROXY、或者杀毒软件/防火墙悄悄启用的 HTTPS 拦截功能。这些地方比 Composer 配置更底层,也更容易被忽略。


















