From 7838cdee1a66a7b716ae926e60cb239074c3fd8f Mon Sep 17 00:00:00 2001 From: KazooTTT Date: Sat, 23 Nov 2024 22:20:58 +0800 Subject: [PATCH] fix: catch all the path --- src/pages/api/pageview/{[slug].ts => [...slug].ts} | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) rename src/pages/api/pageview/{[slug].ts => [...slug].ts} (92%) diff --git a/src/pages/api/pageview/[slug].ts b/src/pages/api/pageview/[...slug].ts similarity index 92% rename from src/pages/api/pageview/[slug].ts rename to src/pages/api/pageview/[...slug].ts index 5d1aa24..40d5c7e 100644 --- a/src/pages/api/pageview/[slug].ts +++ b/src/pages/api/pageview/[...slug].ts @@ -1,7 +1,10 @@ import type { APIRoute } from 'astro'; export const GET: APIRoute = async ({ params, locals, request }) => { - const slug = params.slug; + // Handle multiple path segments and decode the URL-encoded slug + const slugSegments = params.slug?.split('/') || []; + const slug = decodeURIComponent(slugSegments.join('/')); + if (!slug) { return new Response(JSON.stringify({ error: 'Slug is required' }), { status: 400, @@ -69,7 +72,10 @@ export const GET: APIRoute = async ({ params, locals, request }) => { }; export const POST: APIRoute = async ({ params, locals, request }) => { - const slug = params.slug; + // Handle multiple path segments and decode the URL-encoded slug + const slugSegments = params.slug?.split('/') || []; + const slug = decodeURIComponent(slugSegments.join('/')); + if (!slug) { return new Response(JSON.stringify({ error: 'Slug is required' }), { status: 400,