From 412531884f4a493d9120a1ca3d5ed8df4196f686 Mon Sep 17 00:00:00 2001 From: "Anthony Fu (via agent)" Date: Wed, 26 Aug 2026 00:19:57 +0000 Subject: [PATCH] fix(docs): redirect any-case error-code URLs to canonical uppercase Error reference pages are served at /errors/DFxxxx from the content filenames, so lowercase deep links like /errors/df8111 404. Add a server middleware that 308-redirects any-case DFxxxx error-code paths to their canonical uppercase URL, mirroring the existing trailing-slash middleware. --- docs/server/middleware/error-code-case.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/server/middleware/error-code-case.ts diff --git a/docs/server/middleware/error-code-case.ts b/docs/server/middleware/error-code-case.ts new file mode 100644 index 00000000..9148240c --- /dev/null +++ b/docs/server/middleware/error-code-case.ts @@ -0,0 +1,14 @@ +/** + * Error reference pages live at `/errors/DFxxxx` (uppercase, derived from the + * content filenames). Accept any-case deep links like `/errors/df8111` and + * redirect them to the canonical uppercase URL so a single URL is indexed. + */ +export default defineEventHandler((event) => { + const match = /^\/errors\/(df\d{4})(?=\/|$|\?)/i.exec(event.path) + if (!match) + return + const canonical = match[1].toUpperCase() + if (match[1] === canonical) + return // already canonical, let it through + return sendRedirect(event, event.path.replace(match[1], canonical), 308) +})