// Fix HTML validation on URLs (replace & per &)
git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@8355 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
@@ -325,7 +325,7 @@ class DispatcherCore
|
||||
if (!isset($this->routes[$routeID]))
|
||||
{
|
||||
$query = http_build_query($params);
|
||||
return ($routeID == 'index') ? 'index.php'.(($query) ? '?'.$query : '') : 'index.php?controller='.$routeID.(($query) ? '&'.$query : '');
|
||||
return ($routeID == 'index') ? 'index.php'.(($query) ? '?'.$query : '') : 'index.php?controller='.$routeID.(($query) ? '&'.$query : '');
|
||||
}
|
||||
$route = $this->routes[$routeID];
|
||||
|
||||
@@ -360,7 +360,7 @@ class DispatcherCore
|
||||
}
|
||||
// Build a classic url index.php?controller=foo&...
|
||||
else
|
||||
$url = 'index.php?controller='.$route['controller'].(($queryParams) ? '&'.http_build_query($queryParams) : '');
|
||||
$url = 'index.php?controller='.$route['controller'].(($queryParams) ? '&'.http_build_query($queryParams) : '');
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
@@ -383,7 +383,7 @@ class FrontControllerCore
|
||||
{
|
||||
// $_SERVER['HTTP_HOST'] must be replaced by the real canonical domain
|
||||
|
||||
$canonicalURL = $this->context->link->getPageLink($this->php_self, $this->ssl, $this->context->language->id);
|
||||
$canonicalURL = str_replace('&', '&', $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');
|
||||
|
||||
+1
-1
@@ -311,7 +311,7 @@ class LinkCore
|
||||
$uri_path = Dispatcher::getInstance()->createUrl($controller);
|
||||
$url = ($ssl AND Configuration::get('PS_SSL_ENABLED')) ? Tools::getShopDomainSsl(true) : Tools::getShopDomain(true);
|
||||
$url .= __PS_BASE_URI__.$this->getLangLink($id_lang).ltrim($uri_path, '/');
|
||||
$url .= ($request ? ((strpos($url, '?') === false ? '?' : '&').trim($request)) : '');
|
||||
$url .= ($request ? ((strpos($url, '?') === false ? '?' : '&').trim($request)) : '');
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ class CmsControllerCore extends FrontController
|
||||
|
||||
if (Configuration::get('PS_CANONICAL_REDIRECT'))
|
||||
{
|
||||
if (Validate::isLoadedObject($this->cms) AND $canonicalURL = $this->context->link->getCMSLink($this->cms))
|
||||
if (Validate::isLoadedObject($this->cms) AND $canonicalURL = str_replace('&', '&', $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<br />Please use the following URL instead: <a href="'.$canonicalURL.'">'.$canonicalURL.'</a>');
|
||||
Tools::redirectLink($canonicalURL);
|
||||
}
|
||||
if (Validate::isLoadedObject($this->cms_category) AND $canonicalURL = $this->context->link->getCMSCategoryLink($this->cms_category))
|
||||
if (Validate::isLoadedObject($this->cms_category) AND $canonicalURL = str_replace('&', '&', $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');
|
||||
|
||||
@@ -40,7 +40,7 @@ class ManufacturerControllerCore extends FrontController
|
||||
{
|
||||
if (Validate::isLoadedObject($this->manufacturer))
|
||||
{
|
||||
$canonicalURL = $this->context->link->getManufacturerLink($this->manufacturer);
|
||||
$canonicalURL = str_replace('&', '&', $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');
|
||||
|
||||
@@ -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 = $this->context->link->getProductLink($this->product);
|
||||
$canonicalURL = str_replace('&', '&', $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');
|
||||
|
||||
@@ -43,7 +43,7 @@ class SupplierControllerCore extends FrontController
|
||||
{
|
||||
if (Validate::isLoadedObject($this->supplier))
|
||||
{
|
||||
$canonicalURL = $this->context->link->getSupplierLink($this->supplier);
|
||||
$canonicalURL = str_replace('&', '&', $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');
|
||||
|
||||
Reference in New Issue
Block a user