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

Next.js 14 App Router韩文URL配置及解码URL使用方法求助

Next.js 韩文URL路由配置及重定向循环问题解决

Next.js完全支持韩文等非ASCII字符的URL路由,浏览器会自动将韩文路径转义为百分编码(比如你日志里的%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0就是“시작하기”的转义结果),这是浏览器的标准行为,无需额外处理编码转换。

关于你遇到的ERR_TOO_MANY_REDIRECTS错误,本质是middleware里的重定向逻辑导致了无限循环,常见原因和修复方案如下:

  • 错误根源:如果你在middleware中写了强制将转义后的URL重定向回韩文原URL的逻辑,浏览器会再次自动转义韩文路径,触发middleware的重定向规则,形成循环。比如这类错误代码:

    // 错误示例:引发无限循环
    export function middleware(request) {
      const decodedPath = decodeURI(request.nextUrl.pathname);
      if (decodedPath !== request.nextUrl.pathname) {
        return NextResponse.redirect(new URL(decodedPath, request.url));
      }
    }
    
  • 正确处理方式:

    1. 无需手动处理编码转换,直接创建对应名称的路由文件即可。比如在app/docs/시작하기/page.js(App Router)或pages/docs/시작하기.js(Pages Router)创建路由文件,访问http://localhost:3000/docs/시작하기就能正常匹配路由。
    2. 如果确实需要用middleware处理路由(比如语言路由逻辑),需添加条件避免循环:
      export function middleware(request) {
        const { pathname } = request.nextUrl;
        // 跳过已解码的路径,避免重复重定向
        if (pathname === decodeURI(pathname)) {
          return NextResponse.next();
        }
        // 其他业务逻辑...
      }
      

总结:Next.js原生支持韩文URL路由,直接创建对应路由文件即可;ERR_TOO_MANY_REDIRECTS是middleware重定向逻辑导致的循环,去掉不必要的编码转换重定向就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:52:04