Skip to content

Commit 2bebab2

Browse files
committed
MC-37615: Graphql urlresolver returning Null when using SEO friendly URLs with parameters
1 parent 671e46b commit 2bebab2

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

app/code/Magento/UrlRewriteGraphQl/Model/Resolver/EntityUrl.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ public function resolve(
6565
$storeId = (int)$context->getExtensionAttributes()->getStore()->getId();
6666
$result = null;
6767
// phpcs:ignore Magento2.Functions.DiscouragedFunction
68-
$url = parse_url($args['url'], PHP_URL_PATH);
68+
$urlParts = parse_url($args['url']);
69+
$url = $urlParts['path'] ?? $args['url'];
6970
if (substr($url, 0, 1) === '/' && $url !== '/') {
7071
$url = ltrim($url, '/');
7172
}
@@ -82,6 +83,9 @@ public function resolve(
8283
'redirectCode' => $this->redirectType,
8384
'type' => $this->sanitizeType($finalUrlRewrite->getEntityType())
8485
];
86+
if (!empty($urlParts['query'])) {
87+
$resultArray['relative_url'] .= '?' . $urlParts['query'];
88+
}
8589

8690
if (empty($resultArray['id'])) {
8791
throw new GraphQlNoSuchEntityException(

dev/tests/api-functional/testsuite/Magento/GraphQl/CmsUrlRewrite/UrlResolverTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,9 @@ public function testResolveCMSPageWithQueryParameters()
7070
$page->load('page100');
7171
$cmsPageId = $page->getId();
7272
$requestPath = $page->getIdentifier();
73+
$requestPath .= '?key=value';
7374

74-
$query = $this->createQuery($requestPath . '?key=value');
75+
$query = $this->createQuery($requestPath);
7576
$response = $this->graphQlQuery($query);
7677
$this->assertNotEmpty($response['urlResolver']);
7778
$this->assertEquals($cmsPageId, $response['urlResolver']['id']);

0 commit comments

Comments
 (0)