From 6c1298b796565ea4a94be0cd1377b164441a4f44 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Mon, 6 Apr 2026 12:27:41 -0400 Subject: [PATCH] fix(routing): prevent cached 301 redirects on root and standalone domains Root route now sends no-cache headers to bust stale 301s from the rcal standaloneDomain mishap. Standalone domain redirects changed from 301 (permanent/browser-cached) to 302 (temporary) so misconfiguration can never stick in user browsers again. Co-Authored-By: Claude Opus 4.6 --- server/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/index.ts b/server/index.ts index efb63c6..b12741d 100644 --- a/server/index.ts +++ b/server/index.ts @@ -2936,6 +2936,7 @@ for (const mod of getAllModules()) { // Landing page: rspace.online/ → server-rendered main landing app.get("/", (c) => { + c.header("Cache-Control", "no-cache, no-store, must-revalidate"); return c.html(renderMainLanding(getModuleInfoList())); }); @@ -3352,7 +3353,7 @@ const server = Bun.serve({ redirectUrl = `https://rspace.online/${standaloneModuleId}${remainingPath}`; } if (url.search) redirectUrl += url.search; - return Response.redirect(redirectUrl, 301); + return Response.redirect(redirectUrl, 302); } // ── WebSocket upgrade ──