27 lines
778 B
TypeScript
27 lines
778 B
TypeScript
import { NextResponse, type NextRequest } from 'next/server'
|
|
|
|
let locales = ['en', 'tr']
|
|
let defaultLocale = 'tr'
|
|
|
|
export function middleware(request: NextRequest) {
|
|
// Check if there is any supported locale in the pathname
|
|
const { pathname } = request.nextUrl
|
|
const pathnameHasLocale = locales.some(
|
|
(locale) => pathname.startsWith(`/${locale}/`) || pathname === `/${locale}`
|
|
)
|
|
|
|
if (pathnameHasLocale) return
|
|
|
|
// Redirect if there is no locale
|
|
request.nextUrl.pathname = `/${defaultLocale}${pathname}`
|
|
// e.g. incoming is /about -> /tr/about
|
|
return NextResponse.redirect(request.nextUrl)
|
|
}
|
|
|
|
export const config = {
|
|
matcher: [
|
|
// Skip all internal paths (_next)
|
|
'/((?!api|_next/static|_next/image|favicon.ico|logo.png|images|.*\\..*).*)',
|
|
],
|
|
}
|