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,