2

我配置了一个路由器,如下所示:

<rewrite>
   <My_Module>
        <from><![CDATA[#^/computer/configuration/#]]></from>
        <to>/config/configuration/</to>
        <complete>1</complete>
    </My_Module>
</rewrite>

这有效,每当我访问一个看起来像/computer/configuration/的 URL 时,它都会路由到/config/configuration/。我想要的是改变代码中的这种行为。所以,在我的代码中,我得到了这样的信息:

$from = (string) Mage::getConfig()->getNode('global/rewrite/My_Module/from');

这行得通,我得到的是#^/computer/configuration/#。现在我尝试更改来自:

$from = '#^/somethingelse/configuration/#';
Mage::getConfig()->setNode('global/rewrite/My_Module/from', $from);
Mage::getConfig()->saveConfig();

// This returns me the new value (#^/somethingelse/configuration/#)
$from = (string) Mage::getConfig()->getNode('global/rewrite/My_Module/from');

但是路由不起作用,它给了我 404 not found 页面。看来,我设置的值并没有真正保存。我是否忘记了代码中的某些内容?

谢谢你的帮助!:)

4

1 回答 1

0

我相信配置保存后需要重新初始化。尝试这个:

Mage::app()->getConfig()->reinit();

...你可能还需要这个:

Mage::app()->reinitStores();
于 2012-10-07T14:38:30.997 回答