diff --git a/classes/Dispatcher.php b/classes/Dispatcher.php
index 1be571bc4..ad6a8cc42 100644
--- a/classes/Dispatcher.php
+++ b/classes/Dispatcher.php
@@ -325,7 +325,7 @@ class DispatcherCore
if (!isset($this->routes[$route_id]))
{
$query = http_build_query($params);
- return ($route_id == 'index') ? 'index.php'.(($query) ? '?'.$query : '') : 'index.php?controller='.$route_id.(($query) ? '&'.$query : '');
+ return ($route_id == 'index') ? 'index.php'.(($query) ? '?'.$query : '') : 'index.php?controller='.$route_id.(($query) ? '&'.$query : '');
}
$route = $this->routes[$route_id];
@@ -360,7 +360,7 @@ class DispatcherCore
}
// Build a classic url index.php?controller=foo&...
else
- $url = 'index.php?controller='.$route['controller'].(($query_params) ? '&'.http_build_query($query_params) : '');
+ $url = 'index.php?controller='.$route['controller'].(($query_params) ? '&'.http_build_query($query_params) : '');
return $url;
}
diff --git a/classes/FrontController.php b/classes/FrontController.php
index f3d93f494..bbc506c63 100755
--- a/classes/FrontController.php
+++ b/classes/FrontController.php
@@ -383,7 +383,7 @@ class FrontControllerCore
{
// $_SERVER['HTTP_HOST'] must be replaced by the real canonical domain
- $canonicalURL = str_replace('&', '&', $this->context->link->getPageLink($this->php_self, $this->ssl, $this->context->language->id));
+ $canonicalURL = $this->context->link->getPageLink($this->php_self, $this->ssl, $this->context->language->id);
if (!Tools::getValue('ajax') && !preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', (($this->ssl AND Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']))
{
header('HTTP/1.0 301 Moved');
diff --git a/controllers/CMSController.php b/controllers/CMSController.php
index dad5140f2..06b5c29f4 100644
--- a/controllers/CMSController.php
+++ b/controllers/CMSController.php
@@ -39,7 +39,7 @@ class CmsControllerCore extends FrontController
if (Configuration::get('PS_CANONICAL_REDIRECT'))
{
- if (Validate::isLoadedObject($this->cms) AND $canonicalURL = str_replace('&', '&', $this->context->link->getCMSLink($this->cms)))
+ if (Validate::isLoadedObject($this->cms) AND $canonicalURL = $this->context->link->getCMSLink($this->cms))
if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']))
{
header('HTTP/1.0 301 Moved');
@@ -47,7 +47,7 @@ class CmsControllerCore extends FrontController
die('[Debug] This page has moved
Please use the following URL instead: '.$canonicalURL.'');
Tools::redirectLink($canonicalURL);
}
- if (Validate::isLoadedObject($this->cms_category) AND $canonicalURL = str_replace('&', '&', $this->context->link->getCMSCategoryLink($this->cms_category)))
+ if (Validate::isLoadedObject($this->cms_category) AND $canonicalURL = $this->context->link->getCMSCategoryLink($this->cms_category))
if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']))
{
header('HTTP/1.0 301 Moved');
diff --git a/controllers/ManufacturerController.php b/controllers/ManufacturerController.php
index 0ffc55f7f..5ecc6e8bb 100644
--- a/controllers/ManufacturerController.php
+++ b/controllers/ManufacturerController.php
@@ -40,7 +40,7 @@ class ManufacturerControllerCore extends FrontController
{
if (Validate::isLoadedObject($this->manufacturer))
{
- $canonicalURL = str_replace('&', '&', $this->context->link->getManufacturerLink($this->manufacturer));
+ $canonicalURL = $this->context->link->getManufacturerLink($this->manufacturer);
if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']))
{
header('HTTP/1.0 301 Moved');
diff --git a/controllers/ProductController.php b/controllers/ProductController.php
index ea2de43dc..3e925e087 100644
--- a/controllers/ProductController.php
+++ b/controllers/ProductController.php
@@ -56,7 +56,7 @@ class ProductControllerCore extends FrontController
// $_SERVER['HTTP_HOST'] must be replaced by the real canonical domain
if (Validate::isLoadedObject($this->product))
{
- $canonicalURL = str_replace('&', '&', $this->context->link->getProductLink($this->product));
+ $canonicalURL = $this->context->link->getProductLink($this->product);
if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']))
{
header('HTTP/1.0 301 Moved');
diff --git a/controllers/SupplierController.php b/controllers/SupplierController.php
index 26007ac32..01f9a9e53 100644
--- a/controllers/SupplierController.php
+++ b/controllers/SupplierController.php
@@ -43,7 +43,7 @@ class SupplierControllerCore extends FrontController
{
if (Validate::isLoadedObject($this->supplier))
{
- $canonicalURL = str_replace('&', '&', $this->context->link->getSupplierLink($this->supplier));
+ $canonicalURL = $this->context->link->getSupplierLink($this->supplier);
if (!preg_match('/^'.Tools::pRegexp($canonicalURL, '/').'([&?].*)?$/', Tools::getProtocol().$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']))
{
header('HTTP/1.0 301 Moved');