@@ -3,6 +3,7 @@ const getFilePathForRoute = require("../../helpers/getFilePathForRoute");
3
3
const getDataRouteForRoute = require ( "../../helpers/getDataRouteForRoute" ) ;
4
4
const getNetlifyFunctionName = require ( "../../helpers/getNetlifyFunctionName" ) ;
5
5
const nextConfig = require ( "../../helpers/getNextConfig" ) ( ) ;
6
+ const getPrerenderManifest = require ( "../../helpers/getPrerenderManifest" ) ;
6
7
const pages = require ( "./pages" ) ;
7
8
8
9
// Pages with getStaticProps (without fallback or revalidation) only need
@@ -27,6 +28,11 @@ const redirects = [];
27
28
const dynamicDefaultLocaleRedirectsAdded = [ ] ;
28
29
const dynamicLocaleSrcRoutesAdded = [ ] ;
29
30
31
+ const { dynamicRoutes } = getPrerenderManifest ( ) ;
32
+ const isFallbackRoute = ( srcRoute ) => {
33
+ return dynamicRoutes [ srcRoute ] && ! ! dynamicRoutes [ srcRoute ] . fallback ;
34
+ } ;
35
+
30
36
pages . forEach ( ( { route, dataRoute, srcRoute } ) => {
31
37
const relativePath = getFilePathForRoute ( srcRoute || route , "js" ) ;
32
38
const filePath = join ( "pages" , relativePath ) ;
@@ -69,9 +75,12 @@ pages.forEach(({ route, dataRoute, srcRoute }) => {
69
75
// i.e. /getStaticProps/23 -> /en/getStaticProps/23
70
76
// BUT we only have to do this *once* per srcRoute (within this pages loop)
71
77
// so we track the srcRoutes we've already added redirects for
78
+ // Also skip fallback srcRoutes, not needed because getStaticPropsWithFallback
79
+ // logic will add this redirect
72
80
if (
73
81
defaultLocale &&
74
- ! dynamicDefaultLocaleRedirectsAdded . includes ( srcRoute )
82
+ ! dynamicDefaultLocaleRedirectsAdded . includes ( srcRoute ) &&
83
+ ! isFallbackRoute ( srcRoute )
75
84
) {
76
85
const formattedSrcRoute = srcRoute . replace ( "[" , ":" ) . replace ( "]" , "" ) ;
77
86
const defaultLocaleTarget = `/${ defaultLocale } ${ formattedSrcRoute } ` ;
0 commit comments