「フロントコントローラーが100回のルーター一致の反復に達した」エラーの原因は何ですか?


14

Magentoの開発者として私はこの問題に何度も直面しましたが、いくつかのモジュールがロードされず、ルーターもエラーが発生した場合、それが設定ミスの問題であることを知っています。ほとんどの場合、アクションなしで解決されますが、キャッシュをフラッシュする場合もあります

これについて複数の投稿を読んで、Magento coreフロントコントローラーapp/code/core/Mage/Core/Controller/Varien/Front.phpに追加のコードを配置してデバッグしようとしましたが、最後に、モジュールルーターが見つからない理由のみを表示します。それが発生するたびに、どのURLがエラーを発生させているかを確認しようとしますが、これはコードトレースと同じ役に立たない情報です。いつも同じです

モジュールの競合が原因である可能性がありますか?たぶんそれは何か間違ったことをしているcronタスクですか?たぶん古いMagentoバージョンのいくつかの間違ったコード?問題は、この問題はバージョン1.7以降では発生しないことです(発生した場合は完全に散発的です)。メインフローには、次のようないくつかのコードの違いがあります。

Mage::register('application_params', $params);

のrun()メソッドapp/code/core/Mage/Core/Model/App.php、または

$this->_shouldSkipProcessModulesUpdates()

_initModules()メソッドをチェックイン...

原因を明確に見つけた人がいるはずだと信じたい。任意のヒント?


1
これを参照しましたか?github.com/convenient/...
ティム・ホールマン

1
その記事のポスターは、オーバーライドMage_Core_Model_Configと強制によって問題を修正することができました$_useCache = false
ティムホールマン

1
記事全体を読んだ後、他のユーザーが読むことができるように、私の質問に対する正しい答えとしてそれを投稿すべきだと思います。ありがとう
ラウルサンチェス

回答:


12

Magentoの設定バグが発生しているようです。

ここにソリューションを含む優れた記事があります

その記事では、作成者は構成を再生成Mage_Core_Model_Configする$_useCache = falseときにオーバーライドおよび強制することでバグを修正することができました。


4
畜生!私はその記事の担当者を獲得することはできません、他の人は常に最初にそれにリンクします;)
ルークロジャース

3
@LukeRodgersの素晴らしい記事!
ティムホールマン

5
私はコメントしたいとMagentoのはSUPEE-4755で問題を修正としてこれを受け入れていることを言う github.com/convenient/...
ルーク・ロジャース

2
別のパッチも追加しました。それほど良いものではありませんが、ここで説明します。github.com/convenient/...
ルーク・ロジャース

Magento 2 CEバージョン2.1.0でこの問題に直面しています。古い問題であるため、修正する必要がありますか?
アンキットシャー

6

Magentoの構成設定を確認してくださいデフォルトルートなしのURLを

システム>設定> Web>デフォルトページ
。デフォルト値cms / index / noRouteに設定する必要があります。特定のストア値も、デフォルト値がここで上書きされているかどうかを確認してください。Magentoは、適切に設定されていないと、100回の反復制限に達するまで無限ループに入る可能性があります。

Magerunを使用する場合、このコマンドを実行します。

magerun config:set cms/index/noRoute no-route

私はここで解決策を見つけました、これは私の場合の問題でした。他のオプションのURLを確認できます。

https://merchantprotocol.com/506/solved-front-controller-reached-100-router-match-iterations/


./n98-magerun.phar config:get no-routeを実行すると、「no-route」の設定値が見つかりませんでした。設定エントリが存在しません。答えは確かですか?
ブラック

1
@Blackあなたはそれを間違っています。コンソールのgetメソッドにはパスが必要です-そのため、コマンドは次のようになります-\ n "n98-magerun.phar config:get cms / index / noRoute" \ n "n98-magerun.phar config:get-ヘルプ」
サンディパンS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.