fix: infinite redirect on URL with special characters #1472
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.
For the currently loaded route, when Nuxt.js resolves the route, it passes "normalized" URL to
router.resolve
. This results in resolved route returning that normalized URL. In the case of the original issue the initial URL/foo-&/1
would get normalized to/foo-%26/1
. This created discrepancy when comparing path of the route resolved by this module. Since this module did not normalize the URL, the returned path would be different (encoded vs. decoded char) and the module would attempt to redirect indefinitely.This is caused by a change introduced in some newer version of
ufo
.Fix by using same normalization logic when comparing the current route and the route we are redirecting to.
Resolves #1469