From dd1ac32ed95b8bbef6bcf0c1f982ecb2c7697882 Mon Sep 17 00:00:00 2001 From: Dan Haughey Date: Mon, 1 Dec 2025 10:35:59 +0000 Subject: [PATCH] Fix 'Pre-hydration redirect from server actions does not prepend base path' --- .../next/src/server/app-render/action-handler.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/next/src/server/app-render/action-handler.ts b/packages/next/src/server/app-render/action-handler.ts index 9efbd6bfe5316..dc033b5ff2123 100644 --- a/packages/next/src/server/app-render/action-handler.ts +++ b/packages/next/src/server/app-render/action-handler.ts @@ -1084,7 +1084,17 @@ export async function handleAction({ } // For an MPA action, the redirect doesn't need a body, just a Location header. - res.setHeader('Location', redirectUrl) + const appRelativeRedirectUrl = getAppRelativeRedirectUrl( + ctx.renderOpts.basePath, + host, + redirectUrl, + requestStore.url.pathname + ) + + res.setHeader( + 'Location', + appRelativeRedirectUrl?.toString() ?? redirectUrl + ) return { type: 'done', result: RenderResult.EMPTY,