Magentoのルーティングロジックに問題があることを発見しました。誰かがこれを確認できるかどうかを確認したいと思います。
Magentoは、ルーターadmin、standard、defaultをスタックし、一度に1つずつ処理します。Magentoは、URLに基づいて現在のモジュール名を取得します(を参照Mage_Core_Controller_Varien_Router_Standard::match())
して、Magento構成のfrontNameとの一致に基づいて、モジュールをこのルーターで処理する必要があるかどうかを確認します。一致する場合はルーティングします。一致しない場合はルーティングします。次のルーターに進みます。
構成の抜粋:
<管理者> <ルーター> <myroute> <use> admin </ use> <args> <module> MyNamespace_MyModule </ module> <frontName> myroute </ frontName> </ args> </ myroute> </ルーター> </ admin> <フロントエンド> <ルーター> <myroute> <use> admin </ use> <args> <module> MyNamespace_MyModule </ module> <frontName> myroute </ frontName> </ args> </ myroute> </ルーター> </フロントエンド>
つまり、フロントエンドルーターに管理ルーターと同じ名前を使用すると、フロントエンドページであっても、管理ルーターが常に最初に照合されます。フロントエンドページは、adminを使用して、adminページであるかのようにルーティングされるようにbase_url
なります。これは、ストアのURLとは異なる場合があり、リダイレクトが壊れます。
この問題は、管理ベースURLがフロントエンドベースURLと同じであるMagentoインスタンスでは明らかではないことに注意してください。
ここでルーターロジックの評価が正しいことを誰かが確認できますか?