2012-12-13 35 views
2

我使用過濾器的導航中的magento,所以對於一個過濾頁面顯示這樣的網址:www.example.com/page#cat=16 & gan_data =真包括井號(#)的Magento URL鍵

我想要更改我的類別上的URL鍵,以便它們指向包括過濾器設置(如url abowe)的頂級菜單,而不是指向子級頁面。

問題是,當我保存這樣的URL鍵時,哈希標記從#變爲 - ,所以新的url看起來像這樣:www.example.com/page-cat-16-gan-data-true

有什麼辦法可以避免這種情況?

回答

2

進行格式化的URL鍵的方法是Mage_Catalog_Model_Category :: formatUrlKey():

public function formatUrlKey($str) 
{ 
    $str = Mage::helper('core')->removeAccents($str); 
    $urlKey = preg_replace('#[^0-9a-z]+#i', '-', $str); 
    $urlKey = strtolower($urlKey); 
    $urlKey = trim($urlKey, '-'); 
    return $urlKey; 
} 

任何非字母數字字符將與短劃線代替。所以沒有一些工作就沒有多少工作可做。

你有幾個選擇:

  • 覆蓋類,改變方法。
  • 通過安裝程序更改後端模型 。

第二個選擇是與升級最兼容的,但不幸的是目錄URL重寫指數將重新設置URL關鍵 - 通過相同的方法。所以你將不得不重寫Category類來改變formatUrlKey()方法。

+1

我通過使用第三個選項解決了這個問題。重寫.htaccess文件中的URL,如下所示:rewrite page-cat-16-gan-data-true page#cat = 16&gan_data = true – Espen