From 8ccace9c2401f392fe44a1107a1b2436b4477849 Mon Sep 17 00:00:00 2001 From: Yuto Terada Date: Fri, 15 Nov 2024 14:56:47 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=E3=83=98=E3=83=83=E3=83=80=E3=83=BC?= =?UTF-8?q?=E3=81=ABx-url=E3=82=92=E8=A8=AD=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/middleware.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/middleware.ts b/src/middleware.ts index c00b075..49908cf 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -9,7 +9,9 @@ const getNegotiatedLanguage = ( }; export function middleware(request: NextRequest) { + const newRequest = request.clone(); const url = `${request.headers.get("x-forwarded-proto")}://${request.headers.get("x-forwarded-host")}${request.nextUrl.pathname}${request.nextUrl.search}`; + newRequest.headers.set('x-url', url); const headers = { 'accept-language': request.headers.get('accept-language') ?? '', @@ -19,7 +21,11 @@ export function middleware(request: NextRequest) { const pathname = `${request.nextUrl.pathname}${request.nextUrl.search}`; if (["/img", "/robots.txt", "/_next"].find(i => pathname.startsWith(i))) { - return NextResponse.next(); + return NextResponse.next({ + request: { + headers: newRequest.headers + } + }); } const pathnameIsMissingLocale = availableLanguages.every( @@ -33,11 +39,19 @@ export function middleware(request: NextRequest) { ); } else { const newPathname = `/${defaultLanguage}${pathname}`; - return NextResponse.rewrite(new URL(newPathname, request.url)); + return NextResponse.rewrite(new URL(newPathname, request.url), { + request: { + headers: newRequest.headers + } + }); } } - return NextResponse.next(); + return NextResponse.next({ + request: { + headers: newRequest.headers + } + }); } export const config = {