Вопрос

Можете ли вы изменить 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));
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top