¿Cuál es la causa del error "El controlador frontal alcanzó las 100 iteraciones de coincidencia del enrutador"?

14

Como desarrollador de Magento me he enfrentado a este problema muchas veces, sé que es un problema de configuración incorrecta cuando ocurre que algunos módulos no están cargados, ni sus enrutadores, causando el error. La mayoría de las veces se resuelve sin acción, otras veces puede vaciar el caché

He leído varias publicaciones sobre esto, tratando de depurar colocando un código extra en el controlador frontal del núcleo de Magento app/code/core/Mage/Core/Controller/Varien/Front.php, pero al final esto solo muestra qué enrutadores de módulo faltan, no por qué no se están cargando. Cada vez que ocurre trato de mirar qué URL están dando el error, pero esta es información inútil, igual que el código de rastreo. Siempre es lo mismo

¿Quizás es causado por conflictos de módulos? Tal vez es una tarea cron haciendo algo mal? ¿Quizás algún código incorrecto en versiones anteriores de Magento? El problema es que este problema no ocurre desde la versión 1.7 (o si ocurre, entonces es totalmente esporádico). He encontrado algunas diferencias de código en el flujo principal, como

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

En el método run () de app/code/core/Mage/Core/Model/App.php, o el

$this->_shouldSkipProcessModulesUpdates()

verifique el método _initModules () ...

Quiero creer que debería haber alguien que haya encontrado definitivamente la causa. ¿Algun consejo?

Raúl Sánchez
fuente
1
¿Has hecho referencia a esto? github.com/convenient/…
Tim Hallman
1
El póster de ese artículo pudo solucionar su problema al anular Mage_Core_Model_Configy forzarlo$_useCache = false
Tim Hallman,
1
Después de leer todo el artículo, creo que debería publicarlo como la respuesta correcta a mi pregunta, para que otros usuarios puedan leerlo. Gracias
Raul Sanchez

Respuestas:

12

Parece que estaba experimentando un error de configuración de Magento.

Hay un excelente reportaje con solución aquí .

En ese artículo, el autor pudo rectificar el error anulando Mage_Core_Model_Configy forzando $_useCache = falseal regenerar la configuración.

Tim Hallman
fuente
44
¡Maldición! Nunca consigo cosechar el representante de ese artículo, otras personas siempre se vinculan a él primero;)
Luke Rodgers,
3
Muy buen reportaje @LukeRodgers!
Tim Hallman,
55
Solo me gustaría comentar y decir que Magento ha aceptado esto como una solución al problema con SUPEE-4755 github.com/convenient/…
Luke Rodgers
2
También he agregado otro parche. No tan agradable, pero discutido aquí. github.com/convenient/…
Luke Rodgers
Estoy enfrentando este problema en Magento 2 CE Versión 2.1.0. ¿Debería arreglarse bien porque es un problema antiguo?
Ankit Shah
6

Verifique los ajustes de configuración de Magento URL predeterminada sin ruta en

Sistema> Configuraciones> Web> Páginas predeterminadas
. Se debe establecer el valor predeterminado cms / index / noRoute . Compruebe también el valor de la tienda en particular si su valor predeterminado se ha sobrescrito aquí. Magento puede entrar en un bucle infinito hasta que alcance el límite de 100 iteraciones si no se configura correctamente.

Si usa Magerun , ejecute este comando.

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

He encontrado la solución aquí, este fue el problema en mi caso. Puede consultar la URL para ver otras opciones.

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

Sandipan S
fuente
Si ejecuto ./n98-magerun.phar config: get no-route entonces obtengo No se pudo encontrar un valor de configuración para "no-route", y la entrada de configuración ni siquiera existe, ¿estás seguro de tu respuesta?
Negro
1
@Black lo estás haciendo mal. el método get de la consola requiere la ruta, por lo que su comando debería ser: \ n "n98-magerun.phar config: get cms / index / noRoute" \ n Compruebe la opción de ayuda ejecutando "n98-magerun.phar config: get - ayuda "
Sandipan S