fix: localize 404 and ensure header when no lang

This commit is contained in:
Christel Westerberg
2024-06-04 13:35:45 +02:00
parent 74b05ed6a0
commit d5b08e3a36
8 changed files with 282 additions and 12 deletions

View File

@@ -1,6 +1,6 @@
import { NextMiddleware, NextResponse } from "next/server"
import { findLang } from "./constants/languages"
import { findLang, Lang } from "./constants/languages"
import * as authRequired from "./middlewares/authRequired"
import * as cmsContent from "./middlewares/cmsContent"
import * as currentWebLogin from "./middlewares/currentWebLogin"
@@ -16,8 +16,10 @@ export const middleware: NextMiddleware = async (request, event) => {
// Without it we shortcircuit early.
// We use middleware-error route because notFound() requires a root layout
// which we do not want. We can move to that once all Current stuff is gone.
// Default to English if no lang is found.
return NextResponse.rewrite(
new URL(`/${lang}/middleware-error/404`, request.nextUrl),
new URL(`/${Lang.en}/middleware-error/404`, request.nextUrl),
{
status: 404,
statusText: "Not found",