Loop di reindirizzamento WordPress: come risolverlo

Cos’è un loop di reindirizzamento su WordPress e perché succede

Un loop di reindirizzamento è una situazione in cui il browser viene rimandato da un URL a un altro (e poi di nuovo al primo, o a una catena che si ripete) senza mai arrivare a caricare la pagina, fino a quando il browser stesso interrompe il tentativo mostrando un errore come “ERR_TOO_MANY_REDIRECTS” o “Questa pagina non funziona: ti ha reindirizzato troppe volte”. Su WordPress, la causa quasi sempre riguarda un disaccordo su quale sia l’indirizzo “vero” del sito tra due o più punti della catena che gestisce la richiesta.

L’URL del sito è impostato su un protocollo diverso da quello effettivo

La causa più comune è che l’indirizzo del sito salvato nelle impostazioni di WordPress (nel database, alla voce “Indirizzo WordPress” e “Indirizzo del sito”) specifichi https:// mentre qualcos’altro nella catena — server, cache, CDN — continua a servire o a intercettare richieste su http://, o viceversa. Il risultato è che ogni richiesta viene rimandata da un protocollo all’altro all’infinito, perché nessuno dei due punti riconosce la versione servita dall’altro come quella corretta.

Cloudflare o un altro CDN in una modalità SSL non compatibile

Una causa molto frequente per i siti che usano Cloudflare (o un servizio simile) riguarda la modalità SSL scelta nel pannello del CDN: in modalità “Flexible”, Cloudflare cifra il traffico tra il visitatore e sé stesso, ma comunica con il server di origine in chiaro (http). Se il sito di origine è configurato per forzare sempre https (tramite un plugin, il file .htaccess, o le impostazioni stesse di WordPress), ogni richiesta che arriva da Cloudflare in http viene reindirizzata a https dal server di origine, ma Cloudflare la reinvia di nuovo in http, creando un ciclo che si ripete senza fine.

Regole duplicate o conflittuali nel file .htaccess

Un caso da citare, meno frequente ma possibile dopo modifiche manuali o migrazioni, riguarda regole di reindirizzamento duplicate nel file .htaccess: due blocchi di regole che forzano entrambi lo stesso reindirizzamento (ad esempio verso https) ma con condizioni leggermente diverse possono, in alcune combinazioni, generare un ciclo invece di un singolo redirect pulito.

Come capire la causa: leggere dove si genera il loop

Poiché il loop impedisce di caricare qualsiasi pagina, incluso wp-admin, la diagnosi va fatta senza passare dall’area amministrativa, verificando direttamente le impostazioni salvate e la configurazione del server.

Verificare l’URL impostato nel database

Il valore di “Indirizzo WordPress” e “Indirizzo del sito” (le opzioni siteurl e home nel database, tabella wp_options) è il primo punto da controllare: se non riesci ad accedere a wp-admin a causa del loop, apri phpMyAdmin, cerca queste due righe nella tabella wp_options e verifica che il protocollo (http o https) corrisponda davvero a come il sito è effettivamente raggiungibile.

Controllare se il sito è dietro un CDN o un proxy

Verifica se il dominio è gestito tramite Cloudflare o un servizio simile: se sì, il passaggio successivo riguarda la modalità SSL impostata in quel pannello, non solo la configurazione di WordPress, perché la causa può trovarsi in un disaccordo tra le due parti (CDN e server di origine) piuttosto che in WordPress stesso.

Sintomo osservabileCausa probabile
Loop comparso subito dopo aver installato o attivato un certificato SSLsiteurl/home ancora su http mentre il sito ora serve https, o viceversa
Loop comparso subito dopo una migrazione o un cambio di dominioURL del sito nel database non aggiornato al nuovo dominio o protocollo
Il sito usa Cloudflare (o un CDN simile) ed è comparso dopo aver forzato httpsModalità SSL “Flexible” del CDN in conflitto con il redirect https forzato lato server
Loop presente solo su alcune pagine specifiche, non su tutto il sitoRegole duplicate o conflittuali nel file .htaccess per percorsi specifici
Loop presente anche disattivando tutti i plugin (verificabile via FTP)La causa non è un plugin ma la configurazione di URL, .htaccess o CDN

Risolvere il loop di reindirizzamento: allineare URL del sito e protocollo

Per il caso più comune — disaccordo tra il protocollo impostato in WordPress e quello effettivamente servito — la soluzione più sicura passa da wp-config.php, senza bisogno di modificare direttamente il database.

Correggere l’URL del sito da wp-config.php

Collegati via FTP/SFTP e apri wp-config.php. Aggiungi le righe define('WP_SITEURL', 'https://tuosito.it'); e define('WP_HOME', 'https://tuosito.it'); (sostituendo con il protocollo e il dominio corretti per il tuo caso), prima della riga che carica il resto di WordPress. Queste due costanti sovrascrivono i valori salvati nel database senza doverli modificare direttamente, e sono il modo più sicuro di intervenire quando il loop impedisce l’accesso a wp-admin.

Verificare la presenza di redirect duplicati nel .htaccess

Apri il file .htaccess nella root del sito e controlla se sono presenti più blocchi di regole che forzano lo stesso reindirizzamento (cerca righe con RewriteCond e HTTPS ripetute in punti diversi del file): se ne trovi più di uno con lo stesso scopo, lascia solo il blocco standard generato da WordPress (racchiuso tra # BEGIN WordPress e # END WordPress) e rimuovi le regole aggiuntive duplicate.

Svuotare la cache e verificare che il loop sia risolto

Svuota la cache di eventuali plugin di caching e, se presente, del CDN collegato al sito. Apri il sito in una scheda anonima (per escludere la cache del browser, che spesso mantiene memoria di redirect precedenti) e verifica che si carichi normalmente sia in area pubblica sia in wp-admin.

Il sito è dietro Cloudflare: impostare la modalità SSL corretta

Se il sito usa Cloudflare e il loop è comparso dopo aver attivato un redirect https forzato, la soluzione specifica è cambiare la modalità SSL nel pannello Cloudflare da “Flexible” a “Full” o, se il certificato sul server di origine è valido, a “Full (strict)”: queste modalità fanno sì che Cloudflare comunichi con il server di origine tramite https invece che in chiaro, eliminando il disaccordo tra le due parti che genera il ciclo. Dopo il cambio, svuota anche la cache di Cloudflare dal suo pannello prima di verificare che il sito si carichi correttamente.

Non riesci a risolvere? Intervento tecnico a distanza

Se il loop persiste dopo aver corretto l’URL in wp-config.php e verificato il file .htaccess, se non sei sicuro di come sia configurato un eventuale CDN collegato al dominio, o se il sito resta inaccessibile anche da wp-admin, continuare a modificare file alla cieca rischia di allungare inutilmente il tempo di inattività del sito. In questi casi è possibile richiedere una verifica diretta dell’accesso FTP/SFTP, del pannello hosting e di eventuali servizi CDN collegati: si individua con precisione dove si genera il disaccordo tra le parti coinvolte e si corregge senza ulteriori tentativi.

Domande frequenti sul loop di reindirizzamento su WordPress

Perché non riesco ad accedere a wp-admin per correggere il problema? Perché il loop coinvolge ogni richiesta al dominio, inclusa quella verso wp-admin: per questo la correzione va fatta da fuori WordPress, tramite FTP/SFTP o phpMyAdmin, non dal pannello amministrativo.

Il loop di reindirizzamento può dipendere da un plugin? È meno comune della causa legata a URL/protocollo o CDN, ma possibile se un plugin di sicurezza o di redirect ha una regola in conflitto con quella già presente lato server: se sospetti questo, puoi disattivare i plugin rinominando la cartella wp-content/plugins via FTP per escluderli dalla diagnosi.

Perché il loop è comparso proprio dopo aver installato il certificato SSL? Perché installare il certificato rende il sito raggiungibile anche in https, ma se l’URL salvato nelle impostazioni di WordPress non viene aggiornato di conseguenza, si crea il disaccordo tra il protocollo “dichiarato” da WordPress e quello effettivamente servito.

Serve modificare il database anche se ho già corretto wp-config.php? Non necessariamente: le costanti WP_SITEURL e WP_HOME in wp-config.php hanno la priorità sui valori nel database, quindi risolvono il problema anche senza modificare direttamente wp_options, a meno che tu non voglia comunque allineare i due per pulizia.

Come faccio a sapere se uso Cloudflare senza averlo configurato io stesso? Puoi verificarlo controllando le impostazioni DNS del dominio dal pannello di gestione del registrar, oppure chiedendo a chi ha configurato inizialmente il sito o l’hosting, se non ne sei sicuro.

Vuoi risolverlo con un intervento diretto? Se il loop di reindirizzamento persiste o non sei sicuro di come intervenire su URL, .htaccess o CDN collegato, è possibile richiedere una verifica diretta dell’accesso al sito: si individua con precisione la causa e si corregge senza ulteriori tentativi. → Richiedi assistenza specializzata.

Articoli correlati