Was ist die Ursache für den Fehler "Front-Controller hat 100 Router-Übereinstimmungsiterationen erreicht"?

14

Als Magento-Entwickler habe ich dieses Problem unzählige Male erlebt. Ich weiß, dass es sich um ein Fehlkonfigurationsproblem handelt, wenn einige Module nicht geladen sind und auch nicht ihre Router, die den Fehler verursachen. In den meisten Fällen wird es ohne Aktion gelöst, in anderen Fällen können Sie den Cache leeren

Ich habe mehrere Posts darüber gelesen, in denen versucht wurde, einen zusätzlichen Code in den Magento Core Front-Controller zu schreiben app/code/core/Mage/Core/Controller/Varien/Front.php, aber am Ende werden nur die fehlenden Modul-Router angezeigt, nicht die Gründe, warum sie nicht geladen werden. Jedes Mal, wenn es auftritt, versuche ich zu überprüfen, welche URLs den Fehler auslösen. Dies sind jedoch ebenso nutzlose Informationen wie die Code-Ablaufverfolgung. Es ist immer das Gleiche

Vielleicht liegt es an Modulkonflikten? Vielleicht ist es eine Cron-Aufgabe, die etwas falsch macht? Möglicherweise falscher Code in älteren Magento-Versionen? Die Sache ist, dass dieses Problem seit Version 1.7 nicht mehr auftritt (oder wenn es auftritt, dann ist es total sporadisch). Ich habe einige Codeunterschiede im Hauptfluss festgestellt, z

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

In run () -Methode von app/code/core/Mage/Core/Model/App.php, oder der

$this->_shouldSkipProcessModulesUpdates()

check in _initModules () Methode ...

Ich möchte glauben, dass es jemanden geben sollte, der die Ursache definitiv gefunden hat. Irgendwelche Tipps?

Raul Sanchez
quelle
1
Haben Sie darauf verwiesen? github.com/convenient/…
Tim Hallman
1
Das Poster dieses Artikels konnte das Problem beheben, Mage_Core_Model_Configindem es$_useCache = false
Tim Hallman
1
Nachdem Sie den gesamten Artikel gelesen haben, sollten Sie ihn als die richtige Antwort auf meine Frage posten, damit andere Benutzer ihn lesen können. Danke
Raul Sanchez

Antworten:

12

Es scheint, dass Sie einen Magento-Konfigurationsfehler hatten.

Es gibt ein ausgezeichnetes write-up mit Lösung hier .

In diesem Artikel konnte der Autor den Fehler durch Überschreiben Mage_Core_Model_Configund Erzwingen $_useCache = falsebei der Neuerstellung der Konfiguration beheben .

Tim Hallman
quelle
4
Verdammt! Ich bekomme nie die Wiederholung für diesen Artikel, andere Leute verlinken immer zuerst;)
Luke Rodgers
3
Sehr nette Beschreibung @LukeRodgers!
Tim Hallman
5
Ich möchte nur zu kommentieren und sagen , dass Magento dies als eine Lösung für das Problem mit SUPEE-4755 akzeptiert haben github.com/convenient/...
Luke Rodgers
2
Ich habe auch einen weiteren Patch hinzugefügt. Nicht ganz so schön, aber hier besprochen. github.com/convenient/…
Luke Rodgers
Ich stehe diesem Problem in Magento 2 CE Version 2.1.0 gegenüber. Es sollte richtig behoben werden, weil es ein altes Problem ist?
Ankit Shah
6

Überprüfen Sie die Magento Konfigurationseinstellungen Standard No-Route URL an

System> Konfigurationen> Web> Standardseiten
. Es sollte der Standardwert cms / index / noRoute eingestellt werden . Überprüfen Sie auch den jeweiligen Store-Wert, ob dieser Default-Wert hier überschrieben wurde. Magento kann in eine Endlosschleife gehen, bis es die 100-Iterationsgrenze erreicht, wenn es nicht richtig eingestellt ist.

Wenn Sie Magerun verwenden , führen Sie diesen Befehl aus.

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

Ich habe hier die Lösung gefunden, das war das Problem in meinem Fall. Sie können die URL auf andere Optionen überprüfen.

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

Sandipan S
quelle
Wenn ich ./n98-magerun.phar config ausführe: keine Route erhalten, dann erhalte ich Konnte keinen Konfigurationswert für "keine Route" finden, und der Konfigurationseintrag existiert nicht einmal, sind Sie mit Ihrer Antwort sicher?
Schwarz
1
@Black du machst es falsch. Die Konsolenmethode "get" erfordert den Pfad. Daher sollte Ihr Befehl "n98-magerun.phar config" lauten: get cms / index / noRoute Hilfe "
Sandipan S