diff --git a/packages/gitbook/src/components/SitePage/SitePage.tsx b/packages/gitbook/src/components/SitePage/SitePage.tsx index 4f0643ceec..53271a2318 100644 --- a/packages/gitbook/src/components/SitePage/SitePage.tsx +++ b/packages/gitbook/src/components/SitePage/SitePage.tsx @@ -102,6 +102,9 @@ export async function generateSitePageMetadata(props: SitePageProps): Promise { const { dataFetcher } = baseContext; @@ -321,6 +333,7 @@ export async function fetchSiteContextByIds( sections, scripts, contextId: ids.contextId, + isFallback: ids.isFallback, }; } diff --git a/packages/gitbook/src/middleware.ts b/packages/gitbook/src/middleware.ts index caa19c5421..915f2cc700 100644 --- a/packages/gitbook/src/middleware.ts +++ b/packages/gitbook/src/middleware.ts @@ -298,6 +298,7 @@ async function serveSiteRoutes(requestURL: URL, request: NextRequest) { apiToken: siteURLData.apiToken, imagesContextId: imagesContextId, contextId: siteURLData.contextId, + isFallback: requestURL.searchParams.get('fallback') === 'true' ? true : undefined, }; const requestHeaders = new Headers(request.headers); @@ -382,7 +383,11 @@ async function serveSiteRoutes(requestURL: URL, request: NextRequest) { ].join('/'); const rewrittenURL = new URL(`/${route}`, request.nextUrl.toString()); - rewrittenURL.search = request.nextUrl.search; // Preserve the original search params + // Preserve the original search params but remove fallback=true if present + rewrittenURL.search = request.nextUrl.search; + if (rewrittenURL.searchParams.has('fallback')) { + rewrittenURL.searchParams.delete('fallback'); + } const response = NextResponse.rewrite(rewrittenURL, { request: {