今天vcphp网站模板来分享一下Magento 多语言URL切换的问题,通常在SEO角度还是用户体验方面,URL的友好很重要。用户能看懂是一方面,最重要还是搜索引擎能够懂。
例如同一个产品的URL:
现在给过我的优化可以实现Magento 多语言URL切换。 实现不同语言,不同URL,前提你把把URL的属性全局设置为0。
在数据库里找到catalog_eav_attribute表,用sql语句找到URL属性。
得到分类和产品URL的属性ID。 SELECT * FROM `catalog_eav_attribute` where attribute_id in(479,481);
把is_global的值改为0,如果是0了就不用改。 到后台重新索引你的URL。 至此还没完,需要修改一个文件,在里面加点东西。找到app\code\core\Mage\Core\Model\Store.php文件,然后再找到getCurrentUrl($fromStore = true)方法。 在return上方插入下面代码:
/ add start ,date 2014-05-15
$rewrite = Mage::getModel('core/url_rewrite');
// 得到id_path
$id_path = $rewrite->getCollection()
->addFieldToFilter('request_path',array('eq'=>$requestString))
->getFirstItem()->getData('id_path');
$store_id = Mage::getModel('core/store')
->getCollection()
->addFieldToFilter ("code",$this->getCode())
->getFirstItem()->getData('store_id');
// 得到request_path
$request_path = $rewrite->getCollection()
->addFieldToFilter('store_id',array('eq'=>$store_id))
->addFieldToFilter('id_path',array('eq'=>$id_path))
->getFirstItem()->getData('request_path');
$requestString = is_null($request_path) ? $requestString : $request_path;
// end
刷新看看,是不是可以切换了。如果成功的话,在切换语言那里会显示不同语言下的URl地址。 |