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

如何强制触发TOO_MANY_REDIRECTS错误?脚本测试可用的实现方法

复现TOO_MANY_REDIRECTS错误的几种常用方法

以下方案都可以稳定触发重定向循环错误,按需选择即可:

1. 服务端配置实现(最贴近真实生产场景)

Nginx 配置

直接在站点配置的server块中添加两条互指的重定向规则:

location /test-redirect-loop {
    return 302 /test-redirect-loop-2;
}
location /test-redirect-loop-2 {
    return 302 /test-redirect-loop;
}

重载Nginx后访问对应路径即可触发,301/302重定向都可以生效,只要形成跳转循环即可。

Apache .htaccess 配置

在站点根目录的.htaccess文件中添加如下规则:

RewriteEngine On
RewriteRule ^test-loop$ /test-loop-2 [R=302,L]
RewriteRule ^test-loop-2$ /test-loop [R=302,L]

Node.js Express 实现

直接写两个互跳的路由即可:

app.get('/test-redirect-loop', (req, res) => {
  res.redirect('/test-redirect-loop-2');
});
app.get('/test-redirect-loop-2', (req, res) => {
  res.redirect('/test-redirect-loop');
});

2. 纯前端静态页面实现(无需修改服务端配置)

写一个最简单的HTML页面,设置自跳转规则即可:

<!DOCTYPE html>
<html>
<head>
  <!-- 方案1:meta标签自动重定向,二选一即可 -->
  <meta http-equiv="refresh" content="0; url=./index.html">
</head>
<body>
  <script>
    // 方案2:JS强制跳转,二选一即可
    // window.location.href = './index.html';
  </script>
</body>
</html>

部分浏览器会限制本地静态页面的自跳转,建议放在本地静态服务(比如nginx静态服务、serve工具)上测试,效果更准确。

3. 本地临时模拟(无需部署页面)

如果只需要测试脚本对该错误的处理逻辑,不需要真实部署页面,可以直接在抓包工具、接口Mock工具中构造返回:

  • 设置响应状态码为302 Found
  • 响应头新增Location字段,值指向当前请求地址,或者另一个会跳转回当前地址的路径
  • 连续请求达到浏览器限制次数后就会触发TOO_MANY_REDIRECTS报错

注意:不同浏览器对最大重定向次数的限制不同,Chrome、Firefox默认阈值为20次左右,达到阈值就会自动终止跳转并抛出错误。


内容的提问来源于stack exchange,提问作者Thadeu Munhóz Cesário

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:45:04