- Home
- Blog
- Web developer
- Front controller reached 100 router match iterations – Problema Magento 2
Front controller reached 100 router match iterations – Problema Magento 2

Getting your Trinity Audio player ready... |
Front controller reached 100 router match iterations – Possibili soluzioni
Sì, l’errore “Front controller reached 100 router match iterations” in Magento 2 è un problema comune che si verifica quando il sistema entra in un ciclo infinito durante il processo di routing delle richieste. Magento tenta di trovare la giusta corrispondenza nel router, ma a causa di configurazioni errate o conflitti di route, non riesce a completare il processo entro il limite di 100 iterazioni, generando così l’errore. Di seguito alcuni dei motivi principali e possibili soluzioni:
Cause comuni dell’errore “Front controller reached 100 router match iterations”
- Route duplicate o errate: Se ci sono due o più route che corrispondono alla stessa richiesta, Magento potrebbe entrare in un loop. Questo è spesso causato da configurazioni errate nei moduli o temi personalizzati.
- Conflitti tra moduli: Alcuni moduli di terze parti, se non configurati correttamente, possono creare conflitti di routing, causando un loop nelle iterazioni di matching del front controller.
- Configurazione errata di cache o sessione: Talvolta, le configurazioni errate di cache o sessione possono causare un comportamento anomalo nel routing.
Soluzioni
- Controllare i moduli personalizzati: Verifica i file di configurazione di tutti i moduli personalizzati, specialmente
routes.xml, per assicurarti che non ci siano conflitti o duplicati nelle definizioni delle route. - Disabilitare i moduli uno per volta: Se sospetti che il problema sia causato da un modulo di terze parti, disabilitali uno per volta e testa il sito per individuare quale crea il problema.
- Pulizia della cache: Dopo ogni modifica ai moduli o ai file di configurazione, pulisci la cache con il comando:
php bin/magento cache:clean
- Questo permette a Magento di caricare le nuove configurazioni.
- Log di debug: Attiva il debug dei log per Magento 2, in modo da avere dettagli su quale route specifica stia creando il loop. Questo può aiutarti a individuare rapidamente il modulo o la configurazione problematici.
- Aggiornare Magento e moduli: Assicurati di avere l’ultima versione di Magento e che tutti i moduli siano aggiornati. A volte, le versioni più vecchie contengono bug che possono causare questo tipo di errore.
Controllo e correzione delle route nei moduli personalizzati
In Magento 2, ogni modulo personalizzato può definire le proprie route nel file
routes.xml. Questo file si trova all’interno della directory del modulo, generalmente inapp/code/[Vendor]/[Modulo]/etc/frontend/routes.xml. Le route specificano i percorsi URL che il modulo gestirà e devono essere configurate correttamente per evitare conflitti.Passaggi per la verifica
Individuare il file routes.xml del modulo: Vai nella directory del modulo in cui sospetti ci sia un problema. La struttura del percorso dovrebbe essere simile a questa:
app/code/[Vendor]/[Modulo]/etc/frontend/routes.xml
Controllare le definizioni di route: All’interno di
routes.xml, verifica la corretta definizione della route. Un esempio di route ben configurata dovrebbe apparire così:<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd"> <router id="standard"> <route id="myroute" frontName="myroute"> <module name="[Vendor]_[Modulo]"/> </route> </router> </config>
- id della route (
myroute): Questo deve essere un identificatore unico. Se due moduli definiscono lo stessoidofrontName, si creerà un conflitto. - frontName (
myroute): Questo è il nome che apparirà nell’URL ed è importante che sia univoco. Per esempio, se hai due moduli confrontName="customroute", solo uno sarà accessibile, mentre l’altro potrebbe causare un loop.
- id della route (
- Modificare id o frontName duplicati: Se trovi route duplicate in due moduli, cambia l’attributo
idofrontNamedi uno dei moduli in modo da renderlo unico. Ad esempio, puoi cambiarefrontName="myroute"infrontName="myroute2"in uno dei moduli per evitare il conflitto. - Controllare le estensioni di terze parti: Alcune estensioni di terze parti possono definire route che potrebbero sovrapporsi con altre. Controlla la documentazione di tali moduli per vedere se esistono particolari avvisi o se sono stati riportati bug correlati alle route.
Esempio di risoluzione di un conflitto di route
Supponiamo che ci siano due moduli:
- Modulo A con
frontName="customer" - Modulo B con
frontName="customer"
Il risultato sarà un conflitto, poiché Magento non saprà quale route assegnare alla gestione dell’URL
/customer.Per risolvere, modifica il
frontNamedi uno dei due moduli, per esempio così:<route id="customer_b" frontName="customerb"> <module name="[Vendor]_[ModuloB]"/> </route>
Validazione della configurazione
Dopo aver modificato le route:
- Pulisci la cache: Assicurati di pulire la cache per applicare le modifiche con:
php bin/magento cache:clean
Testa il sito: Verifica che l’URL funzioni correttamente e che l’errore di iterazione non compaia più.
Questi passaggi dovrebbero aiutarti a risolvere la maggior parte dei problemi di routing causati da duplicazioni o errori nelle configurazioni delle route.
- Controllare i moduli personalizzati: Verifica i file di configurazione di tutti i moduli personalizzati, specialmente