From 7f28a755dc554cbffd3d8ccea4873de69c4eede7 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Mon, 7 Apr 2025 16:39:09 +0100 Subject: [PATCH] Add 404 handling --- .astro/types.d.ts | 1 - src/pages/404.astro | 2 -- src/pages/[roadmapId]/[...topicId].astro | 10 ++++++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.astro/types.d.ts b/.astro/types.d.ts index 03d7cc43f..f964fe0cf 100644 --- a/.astro/types.d.ts +++ b/.astro/types.d.ts @@ -1,2 +1 @@ /// -/// \ No newline at end of file diff --git a/src/pages/404.astro b/src/pages/404.astro index fd6c38ec0..9e4261b86 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -3,8 +3,6 @@ import Icon from '../components/AstroIcon.astro'; import BaseLayout from '../layouts/BaseLayout.astro'; import { getRoadmapIds } from '../lib/roadmap'; -export const prerender = true; - const roadmapIds = await getRoadmapIds(); const legacyRoadmapUrls = [...roadmapIds.map((id) => `/${id}/`), '/roadmaps/']; --- diff --git a/src/pages/[roadmapId]/[...topicId].astro b/src/pages/[roadmapId]/[...topicId].astro index f095b7a58..dbda28046 100644 --- a/src/pages/[roadmapId]/[...topicId].astro +++ b/src/pages/[roadmapId]/[...topicId].astro @@ -10,7 +10,10 @@ export const prerender = false; const { topicId, roadmapId } = Astro.params; if (!topicId || !roadmapId) { - return Astro.redirect('/404'); + Astro.response.status = 404; + Astro.response.statusText = 'Not found'; + + return Astro.rewrite('/404'); } // Handle nested paths by joining the segments @@ -48,7 +51,10 @@ if (!fs.existsSync(contentPath)) { ); if (!fs.existsSync(indexFilePath)) { - return Astro.redirect('/404'); + Astro.response.status = 404; + Astro.response.statusText = 'Not found'; + + return Astro.rewrite('/404'); } contentPath = indexFilePath;