From 939055fb425c260bcf6ddc7d4e2b668f61eaf59f Mon Sep 17 00:00:00 2001 From: magnus Date: Thu, 29 May 2025 19:19:38 +0200 Subject: [PATCH 1/3] fix(preview): Ensure the protocol in redirects from server actions --- packages/cloudflare/src/cli/templates/init.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/cloudflare/src/cli/templates/init.ts b/packages/cloudflare/src/cli/templates/init.ts index 4ffe33d5..d36fc04b 100644 --- a/packages/cloudflare/src/cli/templates/init.ts +++ b/packages/cloudflare/src/cli/templates/init.ts @@ -132,6 +132,14 @@ function populateProcessEnv(url: URL, env: CloudflareEnv) { port: url.port, }, }); + + /* We need to set this environment variable to make redirects work properly in preview mode. + * Next sets this in standalone mode during `startServer`. Without this the protocol would always be `https` here: + * https://github.com/vercel/next.js/blob/6b1e48080e896e0d44a05fe009cb79d2d3f91774/packages/next/src/server/app-render/action-handler.ts#L307-L316 + */ + if (url.hostname === "localhost") { + process.env.__NEXT_PRIVATE_ORIGIN = url.origin; + } } /* eslint-disable no-var */ From 6aed7f9dc8247e952692a4a40d2d948c54e28f29 Mon Sep 17 00:00:00 2001 From: magnus Date: Thu, 29 May 2025 19:31:07 +0200 Subject: [PATCH 2/3] changeset --- .changeset/hip-bags-argue.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/hip-bags-argue.md diff --git a/.changeset/hip-bags-argue.md b/.changeset/hip-bags-argue.md new file mode 100644 index 00000000..989dd9c0 --- /dev/null +++ b/.changeset/hip-bags-argue.md @@ -0,0 +1,5 @@ +--- +"@opennextjs/cloudflare": patch +--- + +fix: Ensure the protocol is correct for redirects in server actions during preview mode From ad79fcbe87dec3a91bec795a5262b991cbb1140e Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Mon, 2 Jun 2025 11:42:56 +0200 Subject: [PATCH 3/3] Update packages/cloudflare/src/cli/templates/init.ts --- packages/cloudflare/src/cli/templates/init.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/cloudflare/src/cli/templates/init.ts b/packages/cloudflare/src/cli/templates/init.ts index d36fc04b..defec664 100644 --- a/packages/cloudflare/src/cli/templates/init.ts +++ b/packages/cloudflare/src/cli/templates/init.ts @@ -137,9 +137,7 @@ function populateProcessEnv(url: URL, env: CloudflareEnv) { * Next sets this in standalone mode during `startServer`. Without this the protocol would always be `https` here: * https://github.com/vercel/next.js/blob/6b1e48080e896e0d44a05fe009cb79d2d3f91774/packages/next/src/server/app-render/action-handler.ts#L307-L316 */ - if (url.hostname === "localhost") { - process.env.__NEXT_PRIVATE_ORIGIN = url.origin; - } + process.env.__NEXT_PRIVATE_ORIGIN = url.origin; } /* eslint-disable no-var */