Magento URL密钥包括哈希(#)

时间:2012-12-13 19:10:10

标签: magento url hashtag

我在magento中使用过滤器导航,因此过滤页面的网址显示如下:www.example.com/page#cat=16&gan_data=true

我想更改类别中的URL键,以便它们指向顶级菜单,包括过滤器设置(如url abowe),而不是子级页面。

问题是,当我保存这样的URL密钥时,哈希标记会从#更改为 - ,因此新网址如下所示:www.example.com/page-cat-16-gan-data-true < / p>

有什么方法可以避免这种情况吗?

1 个答案:

答案 0 :(得分: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()方法。