fix: middleware matcher should match root path with basePath#92554
Open
Albearoti wants to merge 2 commits intovercel:canaryfrom
Open
fix: middleware matcher should match root path with basePath#92554Albearoti wants to merge 2 commits intovercel:canaryfrom
Albearoti wants to merge 2 commits intovercel:canaryfrom
Conversation
When basePath is set, middleware matchers using patterns like /((?!api|_next/static|...).*) failed to match the root basePath URL (e.g. /test) because the pattern required content after the basePath. Now detects when a source pattern can match "/" and makes it optional in the compiled regex, so basePath alone triggers the middleware. Fixes vercel#73786
Collaborator
|
Allow CI Workflow Run
Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer |
…h basePath When both basePath and i18n are configured and the source pattern can match the root path, include the i18n locale prefix in the optional source pattern to preserve locale-aware matching behavior.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
basePathis set, middleware matchers using negative lookahead patterns like/((?!api|_next/static|...).*)failed to match the root basePath URL (e.g./test)source === '/'only recognized the literal/, missing patterns that semantically match root/and wraps it in an optional group{...}?so the basePath alone triggers the middleware/:path*)Test plan
/test(root),/test/foo,/test/aboutall match/test/api,/test/_next/static,/test/favicon.icodon't match/hellowith basePath still works correctlyFixes #73786