有人有针对 Magento 中已删除产品的 301 永久重定向的解决方案吗?
我有一家拥有 5000 种产品的商店。 4000 已售出,并且永远不会再有库存。我想删除这些产品,因为我不再需要它们,并且想要清理/减少我的数据库,但我需要 301 将它们永久重定向到适当的页面,以保留我已经建立的 SEO 效果。
需要明确的是,我不希望已删除的产品页面继续存在,即使出现“缺货”消息,也不希望出现 404 页面未找到。
理想情况下,我能够导出产品 URL 及其最低级别类别页面的 URL,以便我可以通过 .htaccess 文件创建 301 重定向。但是从 Magento 导出仅导出类别 ID,而不导出类别名称或 URL,那么如何以编程方式获取这些呢?或者其他解决方案?
最佳答案
我会创建一个利用观察者和 Magento 的 URL 重写管理器的插件。
此插件将观察 catalog_controller_product_delete
事件,该事件将 array('product' ⇒ $product)
返回到产品上的观察者的 $event
var删除 - 这将在删除时创建自动重定向。
您可以使用它来获取有关产品的最新详细信息,包括其 URL,然后执行以下操作以插入 URL 重写:
Mage::getModel('core/url_rewrite')
->setIsSystem(0)
->setStoreId($storeId)
->setOptions('RP') //301 redirect perm
->setTargetPath($product->getUrlPath() . '.html')
->setRequestPath($newpage->getUrlPath() . '.html')
->save();
关于Magento:删除产品并 301 重定向到相关的现有页面,例如,它的父类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10392760/