diff --git a/examples/app-dir-i18n-routing/middleware.ts b/examples/app-dir-i18n-routing/middleware.ts index b6c1e383215f8..ad11bf2ec059e 100644 --- a/examples/app-dir-i18n-routing/middleware.ts +++ b/examples/app-dir-i18n-routing/middleware.ts @@ -15,7 +15,11 @@ function getLocale(request: NextRequest): string | undefined { let languages = new Negotiator({ headers: negotiatorHeaders }).languages() // @ts-ignore locales are readonly const locales: string[] = i18n.locales - return matchLocale(languages, locales, i18n.defaultLocale) + try { + return matchLocale(languages, locales, i18n.defaultLocale) + } catch (_e) { + return i18n.defaultLocale + } } export function middleware(request: NextRequest) { @@ -43,7 +47,12 @@ export function middleware(request: NextRequest) { // e.g. incoming request is /products // The new URL is now /en-US/products - return NextResponse.redirect(new URL(`/${locale}/${pathname}`, request.url)) + return NextResponse.redirect( + new URL( + `/${locale}${pathname.startsWith('/') ? '' : '/'}${pathname}`, + request.url + ) + ) } }