From e66c7dfb892ba4b28c1b2daf3e1740a153346267 Mon Sep 17 00:00:00 2001 From: suricata Date: Wed, 21 Jan 2026 22:24:42 +0000 Subject: [PATCH] redirect fixed --- server/middleware/redirects.ts | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/server/middleware/redirects.ts b/server/middleware/redirects.ts index a759730..707c320 100644 --- a/server/middleware/redirects.ts +++ b/server/middleware/redirects.ts @@ -1,16 +1,28 @@ +import urlJoin from "url-join"; + export default defineEventHandler(async (event) => { const session = await getUserSession(event) - - const path = event.node.req.url + const conf = useRuntimeConfig(event) + const base_url = conf.app.baseURL + + // normalize and remove base URL + function stripBaseUrl(fullPath: string) { + const base = base_url.replace(/\/+$/, '') // remove trailing slash + return fullPath.startsWith(base) ? fullPath.slice(base.length) || '/' : fullPath + } + + let path = stripBaseUrl(event.node.req.url!) + + if (path?.startsWith("/settings")) // @ts-ignore if (!session.secure?.user_id) - return sendRedirect(event, "/login", 302); + return sendRedirect(event, urlJoin(base_url,"/login"), 302); else if (path?.startsWith("/login")) // @ts-ignore if (session.secure?.user_id) - return sendRedirect(event, "/", 302); + return sendRedirect(event, urlJoin(base_url,"/"), 302); return;