Question

Pouvez-vous changer Subnavigation sous-catégorie urls SEO friendly? si oui, comment?

-à-dire:

existant = store.com/apparel.html?cat=4

= désiré store.com/apparel/shirts.html ou quoi que ce soit proche de cela.

Était-ce utile?

La solution

Laissez-moi vous expliquer d'abord pourquoi cette différence. Dans le premier cas, vous affichez la catégorie « vêtements » et filtrer les résultats sous-catégorie acheter avec id 4 (probablement chemises). Dans le second cas, vous visualisez le Habillement-> chemises catégorie directement.

Si vous avez des paramètres spéciaux pour la catégorie de vêtements (comme la conception différente, une présentation différente ou sidebars) vous serez toujours en mesure de voir ces paramètres dans le premier cas (? Cat = 4).

Dans le second cas, vous verrez les paramètres de la catégorie chemises.

Si vous voulez continuer à utiliser les urls sympathiques pour le filtrage, vous pouvez utiliser une extension.
Je recommande Manadev Seo Layered Navigation et Amasty navigation améliorée Les deux d'entre eux peut être configuré pour se comporter comme vous voulez et plus encore.

Autres conseils

Je créé un module qui permet de résoudre cette erreur.

https://github.com/jruzafa/Devopensource_LayerCatSeo

Merci,

Cela peut être corrigé assez facilement en redéfinissant la méthode getUrl() dans le Mage_Catalog_Model_Layer_Filter_Item class

(Go to /app/code/core/Mage/Catalog/Model/Layer/Filter/Item.php)

Recherchez la fonction à la ligne 57, il devrait ressembler à ceci:

 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));
  }

Modification:

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));
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top