Skip to content

Commit aacf162

Browse files
committed
Try to resolve site redirect with the full path first
1 parent 29bab79 commit aacf162

File tree

1 file changed

+17
-4
lines changed
  • packages/gitbook/src/components/SitePage

1 file changed

+17
-4
lines changed

packages/gitbook/src/components/SitePage/fetch.ts

+17-4
Original file line numberDiff line numberDiff line change
@@ -66,17 +66,30 @@ async function resolvePage(context: GitBookSiteContext, params: PagePathParams |
6666
return resolvePageId(pages, resolved.id);
6767
}
6868

69-
// If a page still can't be found, we try with the API, in case we have a redirect at site level.
70-
const resolvedSiteRedirect = await getDataOrNull(
69+
// We first try to resovle a site redirect with the full path
70+
const resolvedSiteRedirectFull = await getDataOrNull(
71+
context.dataFetcher.getSiteRedirectBySource({
72+
organizationId,
73+
siteId: site.id,
74+
source: context.linker.toPathInContent(rawPathname),
75+
siteShareKey: shareKey,
76+
})
77+
);
78+
if (resolvedSiteRedirectFull) {
79+
return redirect(resolvedSiteRedirectFull.target);
80+
}
81+
82+
// If a page still can't be found, we try to resolve a site redirect with the partial path
83+
const resolvedSiteRedirectPartial = await getDataOrNull(
7184
context.dataFetcher.getSiteRedirectBySource({
7285
organizationId,
7386
siteId: site.id,
7487
source: rawPathname.startsWith('/') ? rawPathname : `/${rawPathname}`,
7588
siteShareKey: shareKey,
7689
})
7790
);
78-
if (resolvedSiteRedirect) {
79-
return redirect(resolvedSiteRedirect.target);
91+
if (resolvedSiteRedirectPartial) {
92+
return redirect(resolvedSiteRedirectPartial.target);
8093
}
8194
}
8295

0 commit comments

Comments
 (0)