“&” au lieu de “&” dans la langue de l'interrupteur url
-
12-12-2019 - |
Question
lors de l'utilisation de magento langue switcher, l'URL générée est:
a href="http://www.shop.com/index.php/bags/eastpak.html?___store=en&___from_store=default">
Magento version 1.7 est utilisé.
Comment puis-je convertir ce &
pour &?
Est Magento Rediriger classe la raison de ce bug?
La solution
Il semble être correct.Merci de regarder https://stackoverflow.com/questions/3705591/do-i-encode-ampersands-in-a-href
Autres conseils
C'est ennuyeux, surtout dans les pages des listes de produits, lorsque l'url contient tous recherche params.
Pour éviter cela, certaines modifications sont nécessaires dans deux fichiers :
1) dans Mage_Core_Controller_Varien_Action
en vertu de
protected function _redirectReferer($defaultUrl=null)
{
$refererUrl = $this->_getRefererUrl();
if (empty($refererUrl)) {
$refererUrl = empty($defaultUrl) ? Mage::getBaseUrl() : $defaultUrl;
}
$this->getResponse()->setRedirect($refererUrl);
return $this;
}
ajouter
protected function _redirectRefererNoSpecialChars($defaultUrl=null)
{
$refererUrl = $this->_getRefererUrl();
$refererUrl = htmlspecialchars_decode($refererUrl, ENT_NOQUOTES);//this needs to be added
if (empty($refererUrl)) {
$refererUrl = empty($defaultUrl) ? Mage::getBaseUrl() : $defaultUrl;
}
$this->getResponse()->setRedirect($refererUrl);
return $this;
}
2) dans Mage_Directory_CurrencyController
changement $this->_redirectReferer(Mage::getBaseUrl());
avec $this->_redirectRefererNoSpecialChars(Mage::getBaseUrl());