默认情况下,Nextjs 路由区分大小写。有什么办法可以让它不区分大小写吗?

问题描述 投票:0回答:1

我在这里使用应用程序路由器。我当前的 URL 是 http://localhost:3000/SomeClientURL

但客户的要求是,如果用户输入http://localhost:3000/someclienturl,它应该以相同的方式工作。

我尝试使用下面的重写方法,但没有成功。

const nextConfig = {
  basePath: "/SomeClientURL",
  async rewrites() {
    return [
      {
        source: '/someclienturl',
        destination: '/SomeClientURL',
      },
    ]
  },
  sassOptions: {
    ..someSettingsHere
  },
  images: {
   ..someSettingsHere
  },
};

next.js url-rewriting url-routing case-sensitive app-router
1个回答
0
投票

如果是的话,我会将所有路由文件命名为小写,并使用中间件来实现不区分大小写

// middleware.js at the same level as app or pages router

import { NextResponse } from "next/server";

export function middleware(request) {
  return NextResponse.rewrite(new URL(request.nextUrl.pathname.toLocaleLowerCase(), request.url));
}
© www.soinside.com 2019 - 2024. All rights reserved.