首页 > 解决方案 > Magento 1.9 url_rewrite 它不适用于查询字符串

问题描述

我正在尝试输入 url_rewrite 条目,但我在获取源 url 的参数时遇到问题,就好像应用程序不会考虑它们一样。

问题仅在具有参数的 url 中,在这种情况下与“?mId=162”:“pequeno-electrodomestico/climatizacion/ventiladores/-c-204_267_388.html?mId=162”类似

该代码可以工作并记录条目,但只有当我从管理员输入该注册表并保存而不更改任何内容时才会正确重定向。如果不这样做,则保存不会重定向。

我已经这样做了:

$_urlrewrite = Mage::getModel('core/url_rewrite');
$_urlrewrite->setIsSystem(1);
$_urlrewrite->setIdPath('OSC_URL-category_' . $_category->getId() . '_mId=' . $osc_path[8]);
$_urlrewrite->setRequestPath("pequeno-electrodomestico/climatizacion/ventiladores/-c-204_267_388.html?mId=162");
$_urlrewrite->setTargetPath("peque-o-electrodomestico/frio-y-calor/ventiladores/s_p");
$_urlrewrite->setOptions('RP');
$_urlrewrite->save();

所以它应该可以工作但不会重定向。

save()之后还需要做别的吗?

标签: phpmagentomagento-1.9

解决方案


你可以试试这个方法

Mage::getModel('core/url_rewrite')
       ->setIsSystem(0)
       ->setOptions('RP')
        ->setIdPath('OSC_URL-category_' . $_category->getId() . '_mId=' . $osc_path[8])
        ->setTargetPath('peque-o-electrodomestico/frio-y-calor/ventiladores/s_p')
        ->setRequestPath('pequeno-electrodomestico/climatizacion/ventiladores/-c-204_267_388.html?mId=162')
    ->save();

推荐阅读