diff --git a/app/code/Magento/Catalog/Helper/Product/View.php b/app/code/Magento/Catalog/Helper/Product/View.php index 1973e8fbf09519027f1ce8e14c38b7b86177d5c0..8b38045df59d69aac367b3d30a3b6b976a10d683 100644 --- a/app/code/Magento/Catalog/Helper/Product/View.php +++ b/app/code/Magento/Catalog/Helper/Product/View.php @@ -116,24 +116,26 @@ class View extends \Magento\Framework\App\Helper\AbstractHelper $pageConfig->setPageLayout($settings->getPageLayout()); } + $urlSafeSku = rawurlencode($product->getSku()); + // Load default page handles and page configurations if ($params && $params->getBeforeHandles()) { foreach ($params->getBeforeHandles() as $handle) { $resultPage->addPageLayoutHandles( - ['id' => $product->getId(), 'sku' => $product->getSku(), 'type' => $product->getTypeId()], + ['id' => $product->getId(), 'sku' => $urlSafeSku, 'type' => $product->getTypeId()], $handle ); } } $resultPage->addPageLayoutHandles( - ['id' => $product->getId(), 'sku' => $product->getSku(), 'type' => $product->getTypeId()] + ['id' => $product->getId(), 'sku' => $urlSafeSku, 'type' => $product->getTypeId()] ); if ($params && $params->getAfterHandles()) { foreach ($params->getAfterHandles() as $handle) { $resultPage->addPageLayoutHandles( - ['id' => $product->getId(), 'sku' => $product->getSku(), 'type' => $product->getTypeId()], + ['id' => $product->getId(), 'sku' => $urlSafeSku, 'type' => $product->getTypeId()], $handle ); } diff --git a/app/code/Magento/PageCache/Model/Observer/ProcessLayoutRenderElement.php b/app/code/Magento/PageCache/Model/Observer/ProcessLayoutRenderElement.php index fd266341f782b1a41ce9bd366aa51dcc408eee2e..159afc6e90ed4107e4364c4ed086e38f21fbe535 100644 --- a/app/code/Magento/PageCache/Model/Observer/ProcessLayoutRenderElement.php +++ b/app/code/Magento/PageCache/Model/Observer/ProcessLayoutRenderElement.php @@ -37,7 +37,7 @@ class ProcessLayoutRenderElement 'page_cache/block/esi', [ 'blocks' => json_encode([$block->getNameInLayout()]), - 'handles' => urlencode(json_encode($layout->getUpdate()->getHandles())) + 'handles' => json_encode($layout->getUpdate()->getHandles()) ] ); return sprintf('<esi:include src="%s" />', $url); diff --git a/app/code/Magento/Review/Controller/Product/ListAction.php b/app/code/Magento/Review/Controller/Product/ListAction.php index 9669b04f91c7c683749aad291f3f4dacbfd05b47..9774547e52779a5de78e4053a5b8b4613cf19596 100644 --- a/app/code/Magento/Review/Controller/Product/ListAction.php +++ b/app/code/Magento/Review/Controller/Product/ListAction.php @@ -25,8 +25,10 @@ class ListAction extends \Magento\Review\Controller\Product $pageConfig->setPageLayout($product->getPageLayout()); } $update = $this->_view->getLayout()->getUpdate(); + + $urlSafeSku = rawurlencode($product->getSku()); $this->_view->addPageLayoutHandles( - ['id' => $product->getId(), 'sku' => $product->getSku(), 'type' => $product->getTypeId()] + ['id' => $product->getId(), 'sku' => $urlSafeSku, 'type' => $product->getTypeId()] ); $this->_view->loadLayoutUpdates();