diff --git a/server/index.ts b/server/index.ts index 68eca54a..6a66099f 100644 --- a/server/index.ts +++ b/server/index.ts @@ -4070,6 +4070,14 @@ const server = Bun.serve({ // ── Subdomain routing: {space}.rspace.online/{moduleId}/... ── if (subdomain) { + // ── Guard: module IDs are not space slugs ── + // Redirect rcred.rspace.online → demo.rspace.online/rcred (not a space) + const allModuleIds = new Set(getAllModules().map(m => m.id)); + if (allModuleIds.has(subdomain.toLowerCase())) { + const pathSuffix = url.pathname === "/" ? "" : url.pathname; + return Response.redirect(`${proto}//demo.rspace.online/${subdomain}${pathSuffix}${url.search}`, 302); + } + // ── Auto-provision personal space on first visit ── // Fast path: communityExists is an in-memory Map check for cached spaces. if (!(await communityExists(subdomain))) {