Magento:如何设置产品的规范URL?

时间:2015-11-18 16:12:40

标签: magento seo canonical-link

我正在使用megento 1.7.0.2,有些产品有3个或4个不同的网址:

example.com/category1/product1.html
example.com/category1/category2/product1.html
example.com/prodcut1.html
...

在Prodcut1的HTML代码中,magento正在添加此标记:

<link rel="canonical" href="http://example.com/product1.html">

如何选择其他网址?例如:

<link rel="canonical" href="http://example.com/category1/category2/product1.html">

1 个答案:

答案 0 :(得分:0)

不幸的是,无法使用默认的Magento功能。

首先,您需要确定在定义规范网址时要考虑的标准。

我们的Magento SEO extension会让您选择:

  1. 最长的网址(包含最大字符数的网址)
  2. 具有最大类别深度级别的网址
  3. 具有最低类别深度级别的非根URL(至少具有
  4. 的非根URL)
  5. 具有最少字符数(且至少一个类别)的非rootURL
  6. 这些URL也可以添加到HTML和XML站点地图中。

    最重要的是,您可以单独选择任何所选产品的URL或输入自定义规范。

    您也可以使用重写的集合自行尝试。对于社区版,它看起来像这样:

    $collection = Mage::getResourceModel('core/url_rewrite_collection');
            $collection->getSelect()->where('product_id = ? AND category_id is not null AND is_system = 1', $productId,  Zend_Db::INT_TYPE); <- с наличием категории
            $collection->addStoreFilter(Mage::app()->getStore()->getId());
            $collection->getSelect()->order(new Zend_Db_Expr('LENGTH(request_path) ' . 'DESC')); <- sorting that depends on the principle of canonical settings.
            $rewriteModel = $collection->getFirstItem(); 
            var_dump($rewriteModel); <-damp of the acquired object
    

    然后你需要连接基本商店网址+&#34; request_path&#34;属性表单对象+ URL后缀(如果需要)。