@@ -188,13 +188,15 @@ const generateDynamicRewrites = ({
188
188
basePath,
189
189
buildId,
190
190
i18n,
191
+ is404Isr,
191
192
} : {
192
193
dynamicRoutes : RoutesManifest [ 'dynamicRoutes' ]
193
194
prerenderedDynamicRoutes : PrerenderManifest [ 'dynamicRoutes' ]
194
195
basePath : string
195
196
i18n : NextConfig [ 'i18n' ]
196
197
buildId : string
197
198
middleware : Array < string >
199
+ is404Isr : Boolean
198
200
} ) : {
199
201
dynamicRoutesThatMatchMiddleware : Array < string >
200
202
dynamicRewrites : NetlifyConfig [ 'redirects' ]
@@ -208,7 +210,7 @@ const generateDynamicRewrites = ({
208
210
if ( route . page in prerenderedDynamicRoutes ) {
209
211
if ( matchesMiddleware ( middleware , route . page ) ) {
210
212
dynamicRoutesThatMatchMiddleware . push ( route . page )
211
- } else if ( prerenderedDynamicRoutes [ route . page ] . fallback === false ) {
213
+ } else if ( prerenderedDynamicRoutes [ route . page ] . fallback === false && ! is404Isr ) {
212
214
dynamicRewrites . push ( ...redirectsForNext404Route ( { route : route . page , buildId, basePath, i18n } ) )
213
215
} else {
214
216
dynamicRewrites . push (
@@ -266,6 +268,10 @@ export const generateRedirects = async ({
266
268
267
269
const staticRouteEntries = Object . entries ( prerenderedStaticRoutes )
268
270
271
+ const is404Isr = staticRouteEntries . some (
272
+ ( [ route , { initialRevalidateSeconds } ] ) => is404Route ( route , i18n ) && initialRevalidateSeconds !== false ,
273
+ )
274
+
269
275
const routesThatMatchMiddleware : Array < string > = [ ]
270
276
271
277
const { staticRoutePaths, staticIsrRewrites, staticIsrRoutesThatMatchMiddleware } = generateStaticIsrRewrites ( {
@@ -298,6 +304,7 @@ export const generateRedirects = async ({
298
304
basePath,
299
305
buildId,
300
306
i18n,
307
+ is404Isr,
301
308
} )
302
309
netlifyConfig . redirects . push ( ...dynamicRewrites )
303
310
routesThatMatchMiddleware . push ( ...dynamicRoutesThatMatchMiddleware )
0 commit comments