我正在将我们目录中的一些简单产品组合到分组产品中。我需要创建从当前简单产品页面到新分组产品页面的 301 重定向。
这是我所拥有的一个例子:
- 产品 a、b 和 c 是相似的简单产品,每个产品都有自己的 url。
- 分组产品 z 具有与之关联的 a、b 和 c。
- a、b 和 c 的可见性更改为“单独不可见”。
- 访问产品 c 的旧链接会导致“404 Not Found”错误。
我希望第 4 步产生带有分组产品网址的“301 永久移动”。我知道我可以手动更改 URL 重写列表中的条目,但我正在寻找一种更自动化的方法。
有人可以帮我指出正确的方向吗?
更新:
我已将文件 app/code/local/Mage/Catalog/controllers/ProductController.php 更新为:
protected function _initProduct()
{
$categoryId = (int) $this->getRequest()->getParam('category', false);
$productId = (int) $this->getRequest()->getParam('id');
$params = new Varien_Object();
$params->setCategoryId($categoryId);
$parentIds = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($productId);
if(isset($parentIds[0])){
$parent = Mage::getModel('catalog/product')->load($parentIds[0]);
die($parent->getProductUrl());
}
return Mage::helper('catalog/product')->initProduct($productId, $this, $params);
}
我希望这会杀死任何简单的产品页面视图,但事实并非如此。似乎没有为设置为不可见的产品调用产品控制器。那是对的吗?
更新 2:
如果我修改“核心”文件而不是“本地”版本,则可以。关于为什么会这样的任何想法?