From 3b8027dd4fbe176a64a0b1c354ab34aeaa7be0bf Mon Sep 17 00:00:00 2001 From: "crawlproof[bot]" <286981042+crawlproof[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 07:48:29 +0000 Subject: [PATCH 1/2] Fix spec.mcp.33: [required] Redirects (301/302/308) --- next.config.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/next.config.ts b/next.config.ts index 54578acf..7b84c764 100644 --- a/next.config.ts +++ b/next.config.ts @@ -14,6 +14,19 @@ const nextConfig: NextConfig = { images: { remotePatterns: [{ protocol: "https", hostname: "**" }], }, + // Permanent redirect: www.crawlproof.com → crawlproof.com (308 preserves + // the HTTP method and body, making it the correct choice for permanent moves + // on non-GET requests as well as GET). + async redirects() { + return [ + { + source: "/:path*", + has: [{ type: "host", value: "www.crawlproof.com" }], + destination: "https://crawlproof.com/:path*", + permanent: true, // emits 308 + }, + ]; + }, }; export default nextConfig; From 66c312a58c5d3de9c9da1be6649a7acbc594ebcc Mon Sep 17 00:00:00 2001 From: "crawlproof[bot]" <286981042+crawlproof[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 07:48:30 +0000 Subject: [PATCH 2/2] Fix spec.mcp.33: [required] Redirects (301/302/308) --- proxy.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/proxy.ts b/proxy.ts index f888b9b1..07e0c697 100644 --- a/proxy.ts +++ b/proxy.ts @@ -50,7 +50,10 @@ export async function proxy(request: NextRequest) { const url = request.nextUrl.clone(); url.pathname = "/login"; url.searchParams.set("redirect", path); - return NextResponse.redirect(url); + // 302 (Found) — temporary redirect: the resource exists but the user must + // authenticate first. Using an explicit status avoids relying on the + // Next.js default and keeps caches from storing the redirect permanently. + return NextResponse.redirect(url, 302); } return trackReferralCode(request, response as any);