«La pagina non funziona: troppi reindirizzamenti». Con Chrome il messaggio tecnico è ERR_TOO_MANY_REDIRECTS, Firefox parla di “reindirizzamento non corretto”, Safari di “troppi reindirizzamenti”. Il significato è sempre lo stesso: il sito sta mandando il browser da un indirizzo a un altro, e poi da quello di nuovo al primo, in un giro senza fine. Dopo una ventina di passaggi il browser si arrende.
È un errore che spaventa, perché di solito blocca tutto il sito, compreso il pannello di amministrazione. La buona notizia è che le cause sono poche e quasi sempre legate a una modifica recente.
Come nasce un ciclo di reindirizzamenti
Un reindirizzamento (codice 301 o 302) è un’istruzione semplice: “la pagina che cerchi è a quest’altro indirizzo”. Il problema nasce quando due regole si contraddicono. Esempio classico:
- la regola A dice: “se l’indirizzo è
https://tuodominio.it, vai ahttps://www.tuodominio.it“; - la regola B dice: “se l’indirizzo è
https://www.tuodominio.it, vai ahttps://tuodominio.it“.
Il browser rimbalza da una all’altra all’infinito. Le regole possono stare in posti diversi (nel CMS, nel file .htaccess, in un plugin) ed è proprio per questo che a volte è difficile accorgersene.
Le cause più frequenti
1. Versione con o senza “www” in conflitto
In WordPress l’indirizzo del sito è scritto nelle impostazioni (Indirizzo WordPress e Indirizzo sito). Se lì c’è la versione senza www e nel .htaccess hai una regola che forza il www, ottieni esattamente il ciclo descritto sopra. Lo stesso vale per PrestaShop, che conserva il dominio nelle impostazioni di SEO e URL.
2. HTTPS forzato due volte, in modi diversi
Forzare l’HTTPS è giusto (lo spieghiamo nella guida su come forzare HTTPS), ma va fatto in un punto solo. Se lo forzi contemporaneamente con un plugin, con il .htaccess e con l’impostazione del CMS, le regole possono pestarsi i piedi, soprattutto se una usa il www e l’altra no.
3. Il sito non “capisce” di essere già in HTTPS
Quando tra il visitatore e il sito c’è un sistema intermedio (un proxy o una rete di distribuzione dei contenuti), il collegamento cifrato può terminare su quel sistema. Se una regola scritta male controlla soltanto “la connessione che arriva a me è HTTPS?”, potrebbe credere di essere in HTTP e reindirizzare all’infinito verso l’HTTPS. È un caso che si vede spesso con regole copiate da guide pensate per configurazioni diverse. Se il tuo sito è sotto la rete iWebLab Edge e sospetti questa causa, non improvvisare: apri un ticket e verifichiamo insieme.
4. Un plugin di redirect o di lingua
Plugin che gestiscono reindirizzamenti, lingue multiple o accesso riservato possono generare cicli, ad esempio rimandando alla lingua “predefinita” una pagina che a sua volta rimanda indietro. Se il problema è comparso subito dopo averne installato o configurato uno, il sospettato è lui.
5. Un reindirizzamento rimasto in memoria
I reindirizzamenti permanenti (301) vengono memorizzati dai browser e possono essere conservati anche dalle cache. Può succedere che tu abbia già corretto la regola, ma il tuo browser continui a seguire quella vecchia. Prima di concludere che “non è cambiato niente”, prova da una finestra in incognito o da un altro dispositivo.
Come risolvere, passo per passo
- Escludi il browser. Apri il sito in una finestra in incognito o con un altro browser. Se lì funziona, cancella cookie e cache del sito nel browser abituale.
- Guarda la catena dei reindirizzamenti. Dal terminale:
curl -sIL https://tuodominio.it/ | grep -i -E "^HTTP|^location"Vedrai una riga per ogni salto. Se gli indirizzi si ripetono uguali, hai individuato le due regole in conflitto (ad esempio con e senza
www, oppure http e https). - Controlla il .htaccess. Collegati via FTP o con il file manager del pannello, apri il
.htaccessinpublic_htmle cerca le righe conRewriteRuleeRedirect. Prima di toccare qualcosa salvane una copia. Per prova, puoi commentare le regole di redirect aggiungendo#all’inizio della riga. - Allinea l’indirizzo nel CMS. In WordPress, se non riesci a entrare in amministrazione, puoi fissare l’indirizzo nel file
wp-config.php:define( 'WP_HOME', 'https://www.tuodominio.it' ); define( 'WP_SITEURL', 'https://www.tuodominio.it' );Usa la stessa forma (con o senza
www, semprehttps) che usi nelle regole del.htaccess. - Disattiva i plugin sospetti. Senza accesso al pannello di WordPress, rinomina via FTP la cartella del plugin dentro
wp-content/plugins: WordPress lo considererà disattivato. - Svuota le cache del sito. Se usi un plugin di cache, svuotalo dopo ogni correzione: altrimenti potresti continuare a vedere il reindirizzamento vecchio.
Una regola d’oro: un solo punto di verità
La prevenzione migliore è decidere una volta per tutte l’indirizzo “ufficiale” del sito, per esempio https://www.tuodominio.it, e scriverlo in modo coerente ovunque: nelle impostazioni del CMS, in un’unica regola di reindirizzamento e nei link interni. Evita di accumulare tre plugin diversi che fanno la stessa cosa.
Prima di modificare il .htaccess o la configurazione del CMS, ricorda che JetBackup conserva almeno due copie al giorno del tuo sito: se una correzione peggiora le cose, puoi ripristinare il file com’era (trovi la procedura nella guida al ripristino con JetBackup).
Quando chiedere aiuto
Se hai fatto questi controlli e il ciclo continua, apri un ticket dall’area clienti. Incolla l’output del comando curl visto sopra, o almeno l’indirizzo esatto e l’ora: dalla catena dei reindirizzamenti si capisce quasi sempre da dove parte il problema.