Next.js执行npm run dev时自动重定向至/login问题求助
Next.js项目所有路径自动重定向到/login的排查方案
问题描述
从实习项目git clone代码后,执行npm run dev启动Next.js 15.0.2项目,无论访问哪个路径(包括新建文件),都会自动重定向到/login,且/login路径返回404。运行日志如下:
> my-app@0.1.0 dev next dev ▲ Next.js 15.0.2 - Local: http://localhost:3000 ✓ Starting... ✓ Ready in 1555ms ○ Compiling /_not-found ... ✓ Compiled /_not-found in 2.7s (569 modules) GET /login 404 in 3016ms ✓ Compiled in 101ms (279 modules) GET /login 404 in 37ms ○ Compiling /favicon.ico ... ✓ Compiled /favicon.ico in 511ms (313 modules) GET /favicon.ico 200 in 627ms
网络请求截图:

排查步骤
- 检查全局路由中间件:查看项目根目录下的
middleware.ts(或.js),搜索是否存在强制重定向到/login的逻辑(比如判断用户未登录就执行跳转)。 - 检查全局布局/入口文件:查看
app/layout.tsx(或pages/_app.tsx),确认是否有useEffect、路由监听等客户端代码触发自动跳转。 - 清理依赖与缓存:
- 删除
node_modules文件夹和package-lock.json(或yarn.lock),执行npm install重新安装依赖; - 打开浏览器开发者工具(F12),进入
Application标签,找到Service Workers点击Unregister清除旧缓存,再刷新页面。
- 删除
- 核对环境变量:检查项目根目录的
.env(或.env.local)文件,确认是否存在控制路由跳转的配置项(比如AUTH_REDIRECT_PATH=/login)。 - 检查git克隆缺失文件:查看项目
.gitignore文件,确认是否有权限相关配置文件被忽略未克隆,导致默认触发跳转逻辑。 - 定位重定向发起方:从网络截图判断重定向类型:
- 若为302/301状态码,说明是服务器端(middleware或API路由)发起的重定向;
- 若为客户端跳转(无状态码变化),则是前端代码(如React路由、JS逻辑)触发的跳转。
内容的提问来源于stack exchange,提问作者Raikune
相关产品推荐
相关产品推荐

