fix(magento-store): redirect product URLs without /p/ prefix to product route #2581
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
When visiting a product URL without the configured product route prefix (e.g.,
/my-productinstead of/p/my-product), theredirectOrNotFoundfunction returns a 404 even though Magento's route resolver successfully identifies it as a product.The Problem
The issue is in the redirect logic. When
relative_url === from(which is the case when accessing/my-product),redirectUrlisundefined, and the code falls through tonotFoundeven though:The Fix
Added a check after the existing redirect logic: if no explicit redirect URL exists but the route is identified as a product type, redirect to the product route anyway.
Test plan
/p/prefix (e.g.,/my-product-slug)/p/my-product-slug