Files
cat-sitting-planner/middleware.ts

33 lines
1.1 KiB
TypeScript

import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
const locales = ["en", "de"];
const defaultLocale = "de";
export function middleware(request: NextRequest) {
const { pathname } = request.nextUrl;
// Check if there is any supported locale in the pathname
const pathnameHasLocale = locales.some(
(locale) => pathname.startsWith(`/${locale}/`) || pathname === `/${locale}`
);
if (pathnameHasLocale) return;
if (pathname.startsWith("/api") || pathname.includes("sw.js") || pathname.includes("workbox")) return NextResponse.next();
// Redirect if there is no locale
const locale = defaultLocale; // For simplicity, we default to 'de' as requested
request.nextUrl.pathname = `/${locale}${pathname}`;
// Keep searching if the URL changes
return NextResponse.redirect(request.nextUrl);
}
export const config = {
matcher: [
// Skip all internal paths (_next)
"/((?!_next|api|public|manifest|icon|file|globe|next|vercel|window|push-sw.js|sw.js|workbox).*)",
],
};