From b63dfa7973ee05b4f52cd23e723b8ae5dcb1a4ff Mon Sep 17 00:00:00 2001 From: ah-net <103565001+ah-net@users.noreply.github.com> Date: Fri, 10 Jan 2025 15:32:53 +0100 Subject: [PATCH] fix-url-path --- src/Model/LandingPage.php | 1 - src/Model/UrlRewriteService.php | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/Model/LandingPage.php b/src/Model/LandingPage.php index efe7ebc..a340b48 100644 --- a/src/Model/LandingPage.php +++ b/src/Model/LandingPage.php @@ -164,7 +164,6 @@ public function getUrlPath() */ public function setUrlPath(?string $urlPath): LandingPageInterface { - $urlPath = trim($urlPath, ' /'); return $this->setData(self::URL_PATH, $urlPath); } diff --git a/src/Model/UrlRewriteService.php b/src/Model/UrlRewriteService.php index ec6d436..e8ba8df 100644 --- a/src/Model/UrlRewriteService.php +++ b/src/Model/UrlRewriteService.php @@ -132,10 +132,20 @@ public function generateRewrite(UrlRewriteGeneratorInterface $page, string $suff ? $page->getUrlRewriteRequestPath() : $page->getUrlPath() . $suffix; - $requestPath = trim($requestPath, '/'); - $urlRewrite->setRequestPath($requestPath); $urlRewritesToPersist[] = $urlRewrite; + + //if requestpath ends with an /, generate an new urlrewrite without the / + if (substr($requestPath, -1) === '/') { + $urlRewrite = $this->urlRewriteFactory->create(); + $urlRewrite + ->setEntityType($page->getUrlRewriteEntityType()) + ->setEntityId($page->getUrlRewriteEntityId()) + ->setTargetPath($page->getUrlRewriteTargetPath()) + ->setStoreId($storeId); + $urlRewrite->setRequestPath(substr($requestPath, 0, -1)); + $urlRewritesToPersist[] = $urlRewrite; + } } $this->urlPersist->replace($urlRewritesToPersist);