next-ssl-redirect-middleware
Version:
Nextjs Middleware to redirect http to https
24 lines (18 loc) • 741 B
text/typescript
import { NextFetchEvent, NextRequest, NextResponse } from 'next/server'
type Environment = "production" | "development" | "other";
type Params = {
environments?: Environment[]
status?: 301 | 302
}
const middleware = ({
environments = ["production"],
status = 301
}: Params) => (req: NextRequest, ev: NextFetchEvent) => {
const currentEnv = process.env.NODE_ENV as Environment;
if (environments.includes(currentEnv) && !req.headers?.get("x-forwarded-proto")?.includes("https")) {
const hostname = req.headers.get('host') || req.nextUrl.hostname;
return NextResponse.redirect(`https://${hostname}${req.nextUrl.pathname}`, status);
}
return NextResponse.next();
}
export default middleware;