From 0437e5b8bd006f3780bb7a9022b31ac71113141f Mon Sep 17 00:00:00 2001 From: Antoine Phan Date: Mon, 9 Jun 2025 22:11:54 +0100 Subject: [PATCH] Custom URL Redirects --- src/routes/r/[shortname]/+page.server.js | 22 ++++++++++++++++++++++ src/routes/r/[shortname]/+page.svelte | 12 ++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/routes/r/[shortname]/+page.server.js create mode 100644 src/routes/r/[shortname]/+page.svelte diff --git a/src/routes/r/[shortname]/+page.server.js b/src/routes/r/[shortname]/+page.server.js new file mode 100644 index 0000000..2957fd7 --- /dev/null +++ b/src/routes/r/[shortname]/+page.server.js @@ -0,0 +1,22 @@ +import { redirect } from '@sveltejs/kit'; +import { getFromCMS } from 'utils/utils.js'; + +const redirectQuery = `*[_type == "redirects"]{ shortname, url }`; + +export const load = async ({ params }) => { + /** @type {[{shortname: String, url: String}]} */ + let CMSresponse = await getFromCMS(redirectQuery); + + const { shortname } = params; + + CMSresponse.forEach(res => { + if(res.shortname == shortname) { + // if match + throw redirect(302, res.url); + } + }); + + return { + shortname: shortname, + } +}; diff --git a/src/routes/r/[shortname]/+page.svelte b/src/routes/r/[shortname]/+page.svelte new file mode 100644 index 0000000..0ed1b0e --- /dev/null +++ b/src/routes/r/[shortname]/+page.svelte @@ -0,0 +1,12 @@ + + +
+

Where am I?

+

+ Oops! We don't have a page for "r/{data.shortname}". +

+

Please try again!

+