1. Home
  2.  
  3. Blog
  4.  
  5. Web developer
  6.  
  7. Front controller reached 100 router match iterations – Problema Magento 2

Front controller reached 100 router match iterations – Problema Magento 2

Front controller reached 100 router match iterations
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”

  1. 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.
  2. 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.
  3. Configurazione errata di cache o sessione: Talvolta, le configurazioni errate di cache o sessione possono causare un comportamento anomalo nel routing.

Soluzioni

    1. 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.
    2. 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.
    3. 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 in app/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 stesso id o frontName, si creerà un conflitto.
      • frontName (myroute): Questo è il nome che apparirà nell’URL ed è importante che sia univoco. Per esempio, se hai due moduli con frontName="customroute", solo uno sarà accessibile, mentre l’altro potrebbe causare un loop.
    1. Modificare id o frontName duplicati: Se trovi route duplicate in due moduli, cambia l’attributo id o frontName di uno dei moduli in modo da renderlo unico. Ad esempio, puoi cambiare frontName="myroute" in frontName="myroute2" in uno dei moduli per evitare il conflitto.
    2. 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 frontName di 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:

    1. 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.

     

    Se non riesci a risolvere conttataci.

Se ti è piaciuto questo articolo riguardo Front controller reached 100 router match iterations – Problema Magento 2 condividilo sui social:
Dal 2010 supportiamo le aziende nella pianificazione e nello sviluppo di strategie mirate per una presenza efficace e professionale sul web e sui social media. Ecco tutto quello che possiamo fare per la tua attività.

Articoli correlati