123456789101112131415161718192021222324252627282930313233 |
- // middleware.ts
- import { createI18nMiddleware } from "next-international/middleware";
- import { NextRequest, NextResponse } from "next/server";
- import { getSessionCookie } from "better-auth/cookies";
- const I18nMiddleware = createI18nMiddleware({
- locales: ["en", "fr"],
- defaultLocale: "en",
- urlMappingStrategy: "rewrite",
- });
- export async function middleware(request: NextRequest) {
- const response = I18nMiddleware(request);
- const searchParams = request.nextUrl.searchParams.toString();
- response.headers.set("searchParams", searchParams);
- if (request.nextUrl.pathname.includes("/dashboard")) {
- const session = getSessionCookie(request);
- if (!session) {
- return NextResponse.redirect(new URL("/", request.url));
- }
- }
- return response;
- }
- export const config = {
- matcher: [
- "/((?!api|static|_next|manifest.json|scripts/pixel.js|favicon.ico|robots.txt|service-worker\\.js|sw.js|apple-touch-icon.png|android-chrome-.*\\.png|images|icons|sitemap.xml).*)",
- ],
- };
|