From bbae2c8e0d10e31a15a8e39b6a45364d7e6328a2 Mon Sep 17 00:00:00 2001 From: Evgeniy Rybkin Date: Wed, 5 Mar 2025 17:00:23 +0300 Subject: [PATCH 1/4] 39707: Added check to determind should it find final URL or not --- .../UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php b/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php index 7053b746b9baf..e3283bb81aaf6 100755 --- a/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php +++ b/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php @@ -131,6 +131,10 @@ private function getData(string $url, int $redirectType, ?string $entityType, ?i */ private function findFinalUrl(UrlRewrite $urlRewrite): UrlRewrite { + if ($urlRewrite->getTargetPath() === $urlRewrite->getRequestPath()) { + return $urlRewrite; + } + do { $nextUrlRewrite = $this->findUrlFromRequestPath( $urlRewrite->getTargetPath(), From 2ded310e1f6be15c6e3599376ec5a34e0f52f3ab Mon Sep 17 00:00:00 2001 From: Evgeniy Rybkin Date: Mon, 14 Apr 2025 21:00:40 +0300 Subject: [PATCH 2/4] 39707: Updated copyright (fix static test) --- .../UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php b/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php index e3283bb81aaf6..7c9f9b0ea3a06 100755 --- a/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php +++ b/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php @@ -1,7 +1,7 @@ Date: Wed, 16 Apr 2025 16:51:12 +0300 Subject: [PATCH 3/4] 39707: Added slash trimming --- .../UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php b/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php index 7c9f9b0ea3a06..222653878d6bf 100755 --- a/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php +++ b/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php @@ -131,7 +131,7 @@ private function getData(string $url, int $redirectType, ?string $entityType, ?i */ private function findFinalUrl(UrlRewrite $urlRewrite): UrlRewrite { - if ($urlRewrite->getTargetPath() === $urlRewrite->getRequestPath()) { + if (trim($urlRewrite->getTargetPath(), '/') === trim($urlRewrite->getRequestPath(), '/')) { return $urlRewrite; } From e67100e9613f7810926f94252d175b6c114a2e05 Mon Sep 17 00:00:00 2001 From: Evgeniy Rybkin Date: Fri, 18 Apr 2025 10:57:57 +0300 Subject: [PATCH 4/4] 39707: Added condition to break loop when target paths are the same --- .../Model/Resolver/AbstractEntityUrl.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php b/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php index 222653878d6bf..d63f988b51171 100755 --- a/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php +++ b/app/code/Magento/UrlRewriteGraphQl/Model/Resolver/AbstractEntityUrl.php @@ -131,15 +131,16 @@ private function getData(string $url, int $redirectType, ?string $entityType, ?i */ private function findFinalUrl(UrlRewrite $urlRewrite): UrlRewrite { - if (trim($urlRewrite->getTargetPath(), '/') === trim($urlRewrite->getRequestPath(), '/')) { - return $urlRewrite; - } - do { $nextUrlRewrite = $this->findUrlFromRequestPath( $urlRewrite->getTargetPath(), (int) $urlRewrite->getStoreId() ); + + if ($nextUrlRewrite?->getTargetPath() === $urlRewrite->getTargetPath()) { + return $nextUrlRewrite; + } + if ($nextUrlRewrite) { $urlRewrite = $nextUrlRewrite; }