gpt4 book ai didi

magento - 防止在产品 URL 中包含类别 URL 键的自动 URL 重写

转载 作者:行者123 更新时间:2023-12-03 21:39:05 25 4
gpt4 key购买 nike

每当我创建一个新产品时,Magento 会自动创建不必要的 URL 重写,包括每个类别和子类别组合,使用产品路径中类别的 URL 键。例如,对于产品 product-name与类别:
category
category > subcategory
category > subcategory > third

...Magento 将使用以下请求路径自动创建 URL 重写:
/category/product-name
/category/subcategory/product-name
/category/subcategory/third/product-name

...以及使用请求路径创建使用中的 URL 重写:
/product-name
我的问题是,即使我有设置 Use Categories Path for Product URLs设置为 No在:

System > Configuration > Catalog > Search Engine Optimizations

...如何阻止这些额外的 URL 重写被自动创建?

现在,我再次意识到该站点没有链接到站点上任何地方的这些附加路径,但是如果由于某种原因搜索引擎选择了:
http://example.com/category/subcategory/third/product-name
...这会加载!我很担心这会导致搜索引擎索引重复的内容。自 Use Categories Path for Product URLs设置设置为 No ,并且网站上所有产品链接都指向:
http://example.com/product-name
...我想阻止 Magento 自动创建这些不必要的 URL 重写。

作为引用,我尝试截断 core_url_rewrite表归零(基本上清空它)并重新索引目录 URL 重写 System > Index Management .这仍然会导致 Magento 自动创建这些不必要的 URL 重写。

另外,作为引用,我使用的是 Magento Community 1.9.1。

请指教!非常感谢您的帮助。

最佳答案

它不仅与规范链接有关,问题主要是另一个:抓取预算。您不想浪费您的抓取预算,因此需要删除不必要的网址。

您应该通过以下 shell 脚本修改 core_url_rewrite 中的每个条目:

  • is_system = 1
  • product_id 不为空
  • category_id 不为空

  • 你在那里设置:
  • target_path = 直接产品网址
  • 选项 = RP

  • 现在您创建了到真实页面的 301 重定向,并且只剩下一个问题:

    如果产品没有 category-product-urls 如果通过后端配置设置关闭该功能,则不会创建其他 url,这就是我们想要的。
    但是如果一个产品还有 category-product-urls 并且你把这个产品添加到一个类别中,仍然会创建一个新的 category-product-url。因此,您需要通过重写/扩展 Mage_Catalog_Model_Url 来更改一种方法:
     /**
    * Refresh product rewrite
    *
    * @param Varien_Object $product
    * @param Varien_Object $category
    * @return Mage_Catalog_Model_Url
    */
    protected function _refreshProductRewrite(Varien_Object $product, Varien_Object $category)
    {
    //FIX: DONT ADD CATEGORY-PRODUCT-URL - MIGHT HAPPEN IF CATEGORY-PRODUCT-URL EXIST YET FOR THIS PRODUCT
    if (Mage::getStoreConfigFlag('catalog/seo/product_use_categories')) {
    if ($category->getId() && $product->getId()) {
    return $this;
    }
    }

    parent::_refreshProductRewrite($product, $category);
    }

    关于magento - 防止在产品 URL 中包含类别 URL 键的自动 URL 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29502198/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com