From 8126abcf13a02582eea9aa2c9a8d4948b03a3458 Mon Sep 17 00:00:00 2001 From: Lance Chen Date: Fri, 28 Jan 2022 17:22:15 +0800 Subject: [PATCH 1/3] Fix redirect url for prefixing the default locale We want to prefix the default locale to the current path (`/path`), not the current href (`http://domain.tld/path`). --- docs/advanced-features/i18n-routing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/advanced-features/i18n-routing.md b/docs/advanced-features/i18n-routing.md index 119e43578f1db..9b64a09621551 100644 --- a/docs/advanced-features/i18n-routing.md +++ b/docs/advanced-features/i18n-routing.md @@ -177,7 +177,7 @@ export function middleware(request: NextRequest) { request.nextUrl.locale === 'default' return shouldHandleLocale - ? NextResponse.redirect(`/en${request.nextUrl.href}`) + ? NextResponse.redirect(`/en${request.nextUrl.pathname}`) : undefined } ``` From 0dad2b89dc2d165e4e205e7f13a3bc1272ba1a4e Mon Sep 17 00:00:00 2001 From: Lance Chen Date: Sat, 5 Feb 2022 10:42:10 +0800 Subject: [PATCH 2/3] Preserve query string when redirecting to default locale The previous fix redirect to the correct default locale url, but would drop the query string. This commit preserve the original query string by redirecting to the full href. --- docs/advanced-features/i18n-routing.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/advanced-features/i18n-routing.md b/docs/advanced-features/i18n-routing.md index 9b64a09621551..e399709b2904d 100644 --- a/docs/advanced-features/i18n-routing.md +++ b/docs/advanced-features/i18n-routing.md @@ -176,9 +176,12 @@ export function middleware(request: NextRequest) { !request.nextUrl.pathname.includes('/api/') && request.nextUrl.locale === 'default' - return shouldHandleLocale - ? NextResponse.redirect(`/en${request.nextUrl.pathname}`) - : undefined + if (shouldHandleLocale) { + request.nextUrl.pathname = `/en${request.nextUrl.pathname}` + return NextResponse.redirect(request.nextUrl.href) + } else { + return undefined + } } ``` From 84aa00ea6fb65592bb119e28cf785145f71c6d80 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Sat, 5 Feb 2022 20:24:55 -0600 Subject: [PATCH 3/3] ensure query is passed --- docs/advanced-features/i18n-routing.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/advanced-features/i18n-routing.md b/docs/advanced-features/i18n-routing.md index 93d1f9a868fa6..0a55f52ffd69a 100644 --- a/docs/advanced-features/i18n-routing.md +++ b/docs/advanced-features/i18n-routing.md @@ -183,7 +183,9 @@ export function middleware(request: NextRequest) { return shouldHandleLocale ? NextResponse.redirect( - `/en${stripDefaultLocale(request.nextUrl.pathname)}` + `/en${stripDefaultLocale(request.nextUrl.pathname)}${ + request.nextUrl.search + }` ) : undefined }