Files
Greenlens/greenlns-landing/proxy.ts
2026-07-10 11:29:04 +02:00

39 lines
1.1 KiB
TypeScript

import type { NextRequest } from 'next/server'
import { NextResponse } from 'next/server'
import { getLocaleForPath } from '@/lib/localeRoutes'
const APEX_HOST = 'greenlenspro.com'
const WWW_HOST = `www.${APEX_HOST}`
export function proxy(request: NextRequest) {
const host = request.headers.get('host')
const forwardedProto = request.headers.get('x-forwarded-proto')
const requestHeaders = new Headers(request.headers)
requestHeaders.set('x-greenlens-lang', getLocaleForPath(request.nextUrl.pathname))
if (!host || (host !== APEX_HOST && host !== WWW_HOST)) {
return NextResponse.next({ request: { headers: requestHeaders } })
}
const url = request.nextUrl.clone()
let shouldRedirect = false
if (host === WWW_HOST) {
url.host = APEX_HOST
shouldRedirect = true
}
if (forwardedProto === 'http' || url.protocol === 'http:') {
url.protocol = 'https:'
shouldRedirect = true
}
return shouldRedirect
? NextResponse.redirect(url, 308)
: NextResponse.next({ request: { headers: requestHeaders } })
}
export const config = {
matcher: '/:path*',
}