Come risolvere l’errore “Too Many Redirects” in WordPress
L’errore “ERR_TOO_MANY_REDIRECTS” (o “Questa pagina non funziona, troppi reindirizzamenti”) compare quando il browser rileva un ciclo infinito di redirect. La pagina A reindirizza a B, che reindirizza ad A, che reindirizza a B, all’infinito. Dopo un certo numero di cicli, il browser si arrende e mostra l’errore. In questa guida ti spiego le cause più comuni e come risolverle.
Cause più comuni del loop di redirect
Il ciclo di redirect in WordPress è causato quasi sempre da una configurazione errata degli URL o del certificato SSL. Le cause principali sono:
- URL WordPress e URL sito non corrispondenti: nelle impostazioni di WordPress, l’indirizzo WordPress e l’indirizzo del sito devono essere identici. Se uno ha http:// e l’altro https://, si crea un loop.
- Conflitto SSL: il server forza HTTPS ma WordPress è configurato per HTTP, o viceversa.
- Plugin di redirect mal configurato: un plugin crea una regola che reindirizza una pagina a se stessa o a un’altra pagina che reindirizza alla prima.
- Regole .htaccess in conflitto: più regole di redirect nel file .htaccess si contraddicono.
- CDN o proxy che forza redirect: Cloudflare o un altro proxy aggiunge un redirect che entra in conflitto con quelli del server.
Svuotare i cookie del browser
Prima di intervenire sulla configurazione, prova la soluzione più semplice: svuota i cookie del browser per il tuo dominio. A volte un cookie corrotto o obsoleto causa il loop di redirect. Negli strumenti del browser, cerca i cookie del tuo dominio e cancellali, poi ricarica la pagina. Se l’errore scompare, il problema era un cookie e non serve modificare nulla sul server.
Verificare gli URL nelle impostazioni WordPress
Se non riesci ad accedere alla bacheca, puoi correggere gli URL direttamente nel file wp-config.php. Aggiungi queste due righe prima della riga “That’s all, stop editing!”:
define('WP_HOME', 'https://tuodominio.com');
define('WP_SITEURL', 'https://tuodominio.com');
Queste costanti sovrascrivono i valori nel database e forzano WordPress a usare gli URL specificati. Assicurati che il protocollo (http o https) corrisponda alla configurazione reale del tuo server. Se hai SSL attivo, usa https://. Se non hai SSL, usa http://.
Risolvere il conflitto SSL con Cloudflare
Se usi Cloudflare, il loop di redirect è spesso causato dall’impostazione SSL errata. Cloudflare offre diverse modalità SSL:
- Flexible: il traffico tra visitatore e Cloudflare è HTTPS, ma tra Cloudflare e il tuo server è HTTP. Se il server forza HTTPS, si crea un loop.
- Full: HTTPS in entrambe le direzioni. Richiede un certificato SSL sul server (anche auto-firmato).
- Full (Strict): come Full, ma richiede un certificato valido sul server.
La soluzione nella maggior parte dei casi è impostare la modalità SSL su Full o Full (Strict) nel pannello di Cloudflare. La modalità Flexible è la causa più comune di loop di redirect con WordPress e Cloudflare.
Controllare il file .htaccess
Il file .htaccess può contenere regole di redirect in conflitto. Per verificare se il problema è lì, rinomina temporaneamente il file via FTP:
mv .htaccess .htaccess.backup
Poi crea un nuovo .htaccess con il contenuto predefinito di WordPress:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Se il sito funziona con il nuovo .htaccess, il problema era nelle regole aggiunte manualmente o da un plugin. Confronta il file di backup con quello nuovo per identificare la regola problematica.
Disattivare i plugin via FTP
Se sospetti che un plugin stia causando il loop, puoi disattivare tutti i plugin senza accedere alla bacheca. Via FTP, rinomina la cartella wp-content/plugins in wp-content/plugins-disabled. WordPress non troverà i plugin e li disattiverà automaticamente. Se il sito torna a funzionare, rinomina la cartella al nome originale e riattiva i plugin uno alla volta dalla bacheca per identificare quello problematico.
Forzare HTTPS nel modo corretto
Per evitare loop di redirect con SSL, il redirect da HTTP a HTTPS deve essere configurato in un solo punto. Non impostare il redirect contemporaneamente in .htaccess, nel plugin di caching, nel plugin SSL e nel CDN. Scegli un metodo e disabilita gli altri:
- Metodo consigliato: configura il redirect nel server web (Nginx o .htaccess per Apache) e disabilita i redirect nei plugin.
- Con Cloudflare: usa la regola “Always Use HTTPS” di Cloudflare e non aggiungere redirect nel .htaccess.
Verificare con curl
Per diagnosticare il ciclo di redirect, usa curl da terminale per seguire la catena di redirect:
curl -I -L https://tuodominio.com 2>&1 | grep -i "location|HTTP"
Questo comando mostra ogni redirect nella catena con il codice HTTP e l’URL di destinazione. Se vedi gli stessi URL che si alternano, hai identificato il loop e puoi capire quale configurazione lo causa.
Serve assistenza?
Se il tuo sito è bloccato in un loop di redirect e non riesci a risolverlo, il team di SoccorsoWP può diagnosticare e correggere il problema rapidamente. Apri un ticket e il tuo sito tornerà accessibile.