语言切换 URL 中使用“&”代替“&”
-
12-12-2019 - |
题
当使用magento的语言切换器时,生成的URL是:
a href="http://www.shop.com/index.php/bags/eastpak.html?___store=en&___from_store=default">
使用Magento 1.7版本。
我怎样才能转换这个 &
到 &?
Magento 的 Redirect 类是导致此错误的原因吗?
其他提示
这很烦人,尤其是在产品列表页面中,当 url 包含所有搜索参数时。
为了避免这种情况,需要对两个文件进行一些更改:
1) 在 Mage_Core_Controller_Varien_Action
在下面
protected function _redirectReferer($defaultUrl=null)
{
$refererUrl = $this->_getRefererUrl();
if (empty($refererUrl)) {
$refererUrl = empty($defaultUrl) ? Mage::getBaseUrl() : $defaultUrl;
}
$this->getResponse()->setRedirect($refererUrl);
return $this;
}
添加
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)在 Mage_Directory_CurrencyController
改变 $this->_redirectReferer(Mage::getBaseUrl());
和 $this->_redirectRefererNoSpecialChars(Mage::getBaseUrl());