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

Next.js中间件重定向排除特定页面(T3栈场景)

解决T3栈开发阶段全局重定向到/signup的Matcher配置问题

问题分析

你之前的Matcher配置未生效,核心原因是缺少对带后缀静态文件的排除规则,同时Next.js内部路径的排除不够全面,导致部分请求被错误重定向,或是出现逻辑遗漏。

修正后的实现方案

直接用Matcher替代繁琐的if判断,只需调整config里的Matcher规则,确保所有需要排除的路径都被覆盖:

import { NextRequest, NextResponse } from "next/server";

export function middleware(request: NextRequest) {
  return NextResponse.redirect(new URL("/signup", request.url));
}

export const config = {
  matcher: [
    // 匹配所有路径,排除以下特殊路径:
    "/((?!signup|_next|_axiom|_api|.*\\..*).*)",
  ],
};

规则说明

  • !signup:排除/signup及其所有子路径,彻底避免重定向循环
  • !_next:全面排除Next.js的内部资源路径(包括静态文件、图片、数据路由等),比单独指定_next/static更省心
  • !_axiom、!_api:保留你需要排除的服务端工具和API路由
  • !.*\\..*:匹配所有带后缀的静态文件(如.png、.css、.js、favicon.ico等),避免静态资源请求被错误重定向

验证效果

配置完成后,除了上述排除的路径,所有客户端请求都会被自动重定向到/signup,无需在Middleware里写一堆条件判断,后续新增排除规则只需在Matcher里添加即可,扩展性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:40:01