Изменить URL -адрес категории субнавигации
-
16-10-2019 - |
Вопрос
Можете ли вы изменить URL -адреса поднавигации подкатегорий на SEO Friendly? Если да, то как?
т.е.:
существует = store.com/apparel.html?cat=4
желательно = store.com/apparel/shirts.html
или что -нибудь близкое к этому.
Решение
Позвольте мне сначала объяснить, почему эта разница. В первом случае вы просматриваете категорию «Одежда» и фильтруете результаты, купите подкатегорию с помощью ID 4 (вероятно, рубашки). Во втором случае вы напрямую просматриваете категорию рубашек.
Если у вас есть специальные настройки для категории одежды (например, другой дизайн, различный макет или боковые панели), вы все равно сможете увидеть эти настройки в первом случае (? Cat = 4).
Во втором случае вы увидите настройки для категории рубашек.
Если вы все еще хотите использовать дружественные URL -адреса для фильтрации, вы можете использовать расширение.
Я рекомендую Manadev SEO многослойная навигация а также Сумма улучшенная навигацияОба они могут быть настроены, чтобы вести себя так, как вы хотите, и даже больше.
Другие советы
Я создал модуль, который решает эту ошибку.
https://github.com/jruzafa/devopensource_layercatseo
Спасибо,
Это можно исправить довольно легко, переопределив getUrl()
Метод в Mage_Catalog_Model_Layer_Filter_Item class
(Go to /app/code/core/Mage/Catalog/Model/Layer/Filter/Item.php)
Найдите функцию в строке 57, она должна выглядеть так:
public function getUrl() { $query = array( $this->getFilter()->getRequestVar()=>$this->getValue(), Mage::getBlockSingleton('page/html_pager')->getPageVarName() => null // exclude current page from urls); return Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$query)); }
Изменить на:
public function getUrl() { if($this->getFilter()->getRequestVar() == "cat"){ $category_url = Mage::getModel('catalog/category')->load($this->getValue())->getUrl(); $return = $category_url; $request = Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true)); if(strpos($request,'?') !== false ){ $query_string = substr($request,strpos($request,'?')); } else{ $query_string = ''; } if(!empty($query_string)){ $return .= $query_string; } return $return; } else{ $query = array( $this->getFilter()->getRequestVar()=>$this->getValue(), Mage::getBlockSingleton('page/html_pager')->getPageVarName() => null // exclude current page from urls ); return Mage::getUrl('*/*/*', array('_current'=>true, '_use_rewrite'=>true, '_query'=>$query)); } }