Skip to content

Commit 2b25de6

Browse files
sc-ruslanmatkovskyiRuslan Matkovskyi
and
Ruslan Matkovskyi
authored
[sitecore-jss-nextjs]: fixed redirects middleware when pattern use default locale in regexp (#1696)
* [sitecore-jss-nextjs]: fixed redirects middleware when pattern use default local in regexp * [sitecore-jss-nextjs]: changed CHANGELOG * [sitecore-jss-nextjs]: fixed ESlint errors * [sitecore-jss-nextjs]: refactoring condition of redirects --------- Co-authored-by: Ruslan Matkovskyi <[email protected]>
1 parent be27caf commit 2b25de6

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ Our versioning strategy is as follows:
2525
* `[templates/node-headless-ssr-proxy]` `[node-headless-ssr-proxy]` Add sc_site qs parameter to Layout Service requests by default ([#1660](https://github.com/Sitecore/jss/pull/1660))
2626
* `[templates/nextjs-sxa]` Fixed Image component when there is using Banner variant which set property background-image when image is empty. ([#1689](https://github.com/Sitecore/jss/pull/1689)) ([#1692](https://github.com/Sitecore/jss/pull/1692))
2727
* `[sitecore-jss-react]` `[templates/nextjs-xmcloud]` Ensure FEAAS and BYOC components can correctly use item datasources ([#1694](https://github.com/Sitecore/jss/pull/1694))
28+
* `[sitecore-jss-nextjs]` Fix loop error in redirect middleware when the pattern of redirect has default locale. ([#1696](https://github.com/Sitecore/jss/pull/1696))
2829

2930
### 🛠 Breaking Changes
3031

packages/sitecore-jss-nextjs/src/middleware/redirects-middleware.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,12 @@ export class RedirectsMiddleware extends MiddlewareBase {
173173
const redirects = await this.redirectsService.fetchRedirects(siteName);
174174
const tragetURL = req.nextUrl.pathname;
175175
const targetQS = req.nextUrl.search || '';
176+
const language = this.getLanguage(req);
177+
const modifyRedirects = structuredClone(redirects);
176178

177-
return redirects.length
178-
? redirects.find((redirect: RedirectInfo) => {
179+
return modifyRedirects.length
180+
? modifyRedirects.find((redirect: RedirectInfo) => {
181+
redirect.pattern = redirect.pattern.replace(RegExp(`^[^]?/${language}/`, 'gi'), '');
179182
redirect.pattern = `/^\/${redirect.pattern
180183
.replace(/^\/|\/$/g, '')
181184
.replace(/^\^\/|\/\$$/g, '')

0 commit comments

Comments
 (0)