diff --git a/src/middleware.ts b/src/middleware.ts index 0ab2d42..a39eb53 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -1,11 +1,36 @@ -import { NextRequest } from 'next/server'; +import { NextResponse } from "next/server"; +import type { NextRequest } from "next/server"; -// eslint-disable-next-line @typescript-eslint/no-unused-vars -export function middleware(request: NextRequest) { - +// Map host → tenant path +const HOST_MAP: Record = { + "theboote.tahavol-mr.ir": "/boote", + "thesun.tahavol-mr.ir": "/suncafe", + // دامنه‌های جدید اینجا اضافه می‌شوند +}; + +export function middleware(req: NextRequest) { + const host = req.headers.get("host") || ""; + const tenantPath = HOST_MAP[host.toLowerCase()] || ""; + + if (!tenantPath) { + return NextResponse.next(); + } + + const pathname = req.nextUrl.pathname; + // مسیرهای api و استاتیک را rewrite نکن + if ( + pathname.startsWith("/api") || + pathname.startsWith("/_next") || + pathname.includes(".") + ) { + return NextResponse.next(); + } + + const url = req.nextUrl.clone(); + url.pathname = `${tenantPath}${pathname}`; + return NextResponse.rewrite(url); } -// only applies this middleware to files in the app directory export const config = { - matcher: '/((?!api|static|favicon.ico|.*\\..*|_next).*)' -}; \ No newline at end of file + matcher: "/:path*", +};