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 に答える