File tree Expand file tree Collapse file tree 3 files changed +18
-1
lines changed
packages/runtime/src/templates Expand file tree Collapse file tree 3 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -270,6 +270,9 @@ export const buildResponse = async ({
270
270
}
271
271
res . headers . set ( 'x-middleware-rewrite' , relativeUrl )
272
272
273
+ request . headers . set ( 'x-original-path' , new URL ( request . url , `http://n` ) . pathname )
274
+ request . headers . set ( 'x-middleware-rewrite' , rewrite )
275
+
273
276
return addMiddlewareHeaders ( context . rewrite ( rewrite ) , res )
274
277
}
275
278
Original file line number Diff line number Diff line change @@ -189,6 +189,13 @@ export const normalizePath = (event: HandlerEvent) => {
189
189
return originalPath
190
190
}
191
191
}
192
+
193
+ if ( event . headers [ 'x-original-path' ] ) {
194
+ if ( event . headers [ 'x-next-debug-logging' ] ) {
195
+ console . log ( 'Original path:' , event . headers [ 'x-original-path' ] )
196
+ }
197
+ return event . headers [ 'x-original-path' ]
198
+ }
192
199
// Ensure that paths are encoded - but don't double-encode them
193
200
return new URL ( event . rawUrl ) . pathname
194
201
}
Original file line number Diff line number Diff line change 1
- import { PrerenderManifest } from 'next/dist/build'
1
+ // eslint-disable-next-line n/no-deprecated-api -- this is what Next.js uses as well
2
+ import { parse } from 'url'
3
+
4
+ import type { PrerenderManifest } from 'next/dist/build'
2
5
import type { BaseNextResponse } from 'next/dist/server/base-http'
3
6
import type { NodeRequestHandler , Options } from 'next/dist/server/next-server'
4
7
@@ -36,6 +39,10 @@ const getNetlifyNextServer = (NextServer: NextServerType) => {
36
39
public getRequestHandler ( ) : NodeRequestHandler {
37
40
const handler = super . getRequestHandler ( )
38
41
return async ( req , res , parsedUrl ) => {
42
+ if ( ! parsedUrl && typeof req ?. headers ?. [ 'x-middleware-rewrite' ] === 'string' ) {
43
+ parsedUrl = parse ( req . headers [ 'x-middleware-rewrite' ] , true )
44
+ }
45
+
39
46
// preserve the URL before Next.js mutates it for i18n
40
47
const { url, headers } = req
41
48
You can’t perform that action at this time.
0 commit comments