Loop di reindirizzamento https in wp-admin di WordPress

3 dic 2014, 07:57:53
Visualizzazioni: 103K
Voti: 79

Sto utilizzando nginx come webserver e ho modificato il file di configurazione per puntare a https, quindi ho cambiato le impostazioni dell'URL di WordPress in https e ho anche aggiunto il codice WordPress force ssl admin al mio file wp-config, ma continuo a ricevere l'errore "Questa pagina web ha un loop di reindirizzamento"

schermata errore loop di reindirizzamento wordpress

0
Tutte le risposte alla domanda 10
17
137

Hai aggiunto $_SERVER['HTTPS'] = 'on'; al tuo wp-config.php?

Dovresti anche utilizzare il plugin WP Migrate DB per migrare da http://tuosito.com a https://tuosito.com

25 feb 2015 21:01:26
Commenti

Ti darei 1000 voti positivi per questo!

Sheharyar Sheharyar
17 gen 2016 23:56:07

Per qualche motivo, questo passaggio cruciale spesso non viene incluso.

Tania Rascia Tania Rascia
27 gen 2016 08:47:17

Grazie! Probabilmente mi hai risparmiato altre ore di tentativi per capire perché l'area di amministrazione non funzionava con SSL.

Sledge Hammer Sledge Hammer
20 feb 2016 19:42:04

è fantastico, l'unico problema è - come installi il plugin se il sito web non funziona :) So che dovresti sempre fare un backup prima di fare cose del genere, ma comunque. La soluzione qui sotto ha funzionato per me :)

Timur Gafforov Timur Gafforov
22 set 2016 11:09:01

wow! $_SERVER['HTTPS'] = 'on'; mi ha salvato!

PJunior PJunior
3 feb 2017 19:13:36

Perché funziona? Ho già usato lo strumento S&R di Interconnect. Dovrei già avere il protocollo corretto nel database.

Jeff Jeff
15 feb 2017 22:28:35

l'istruzione if nella documentazione non ha funzionato per me, quindi sto sempre impostando $_SERVER['HTTPS'] = 'on';

lewis lewis
13 apr 2017 19:38:53

Dopo aver aggiunto $_SERVER['HTTPS']='on'; a wp-config.php, ottengo il messaggio Spiacenti, non sei autorizzato ad accedere a questa pagina. sulla pagina /wp-admin nonostante abbia effettuato l'accesso come amministratore. Utilizzo Cloudflare flexible SSL, quindi il traffico HTTPS viene inviato alla porta HTTP.

baptx baptx
21 dic 2017 14:41:11

Dobbiamo aggiungere if strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) { $_SERVER['HTTPS'] = 'on'; } prima di require_once(ABSPATH . 'wp-settings.php'); come indicato qui: https://wordpress.stackexchange.com/questions/250240/setting-serverhttps-on-prevents-access-to-wp-admin#comment414886_250254 https://wordpress.stackexchange.com/questions/262194/cannot-login-to-wordpress-admin-with-ssl-terminated-load-balancer/263461#263461

baptx baptx
21 dic 2017 14:41:50

Mi dispiace aggiungere un altro commento su $_SERVER['HTTPS'] = 'on'; che mi ha salvato, ma effettivamente ha risolto anche per me tutti i problemi di reindirizzamento. Ho provato ogni modifica possibile a nginx.conf e anche remove_filter('template_redirect', 'redirect_canonical'); che funzionava ma solo per la homepage. Il $_SERVER['HTTPS'] = 'on' ha sistemato tutto immediatamente. Grazie mille!!!!

Daniel Daniel
15 mar 2018 04:30:44

Grazie per questo. Ha funzionato dopo 2 ore di tentativi con altre soluzioni.

hypern00b hypern00b
31 mar 2018 06:25:42

+10000, mi stavo rompendo la testa senza capire perché l'SSL avesse rotto l'area di amministrazione e gli URL di inclusione delle pagine

Wobbles Wobbles
17 mag 2018 16:34:30

Grazie mille! Ore di ricerca finalmente mi hanno portato nel posto giusto.

Foxan Ng Foxan Ng
6 giu 2018 08:34:34

GRAZIE!! Questo è essenziale per Cloudflare e dovrebbe far parte del tutorial.

Sprachprofi Sprachprofi
5 lug 2018 21:08:38

Sei un genio! Grazie infinite. Ho passato tantissime ore a cercare di capirlo. Mi hai tirato fuori da un loop infinito. Grazie!!

SequenceDigitale.com SequenceDigitale.com
22 lug 2018 20:18:14

Grazie mille! $_SERVER['HTTPS'] = 'on'; ha funzionato per me.

Komal Komal
20 ott 2018 09:18:40

proxy_set_header X-Forwarded-Proto https; ha funzionato anche per me. Grazie per la risposta.

oliver nadj oliver nadj
18 ott 2023 14:32:16
Mostra i restanti 12 commenti
6
76

Ho avuto un problema simile e ho semplicemente aggiunto il seguente snippet al mio file wp-config.php:

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// in alcune configurazioni HTTP_X_FORWARDED_PROTO potrebbe contenere  
// una lista separata da virgole, es. http,https  
// quindi verifica la presenza di https  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

come suggerito nel Codex. Questo sarà necessario solo nel caso in cui sia abilitato il pass-through SSL nel setup del tuo load balancer (o firewall). Significa che mentre puoi accedere al sito via HTTP all'interno di TLS/SSL, la comunicazione che riceve il tuo server è solo HTTP. Per gestire questo caso, è necessario l'header sopra riportato in modo che WordPress possa "impostare" HTTPS a on nell'array di configurazione $_SERVER.

16 mar 2016 22:27:58
Commenti

Questa è un'ottima soluzione specificamente per chi utilizza un load balancer. Stavo ospitando questo sito usando Dokku (un clone fai-da-te di Heroku) e avevo problemi con il caricamento delle risorse statiche e il loop di reindirizzamento di wp-admin. Dokku utilizza anche un reverse proxy nginx per inoltrare il traffico in entrata dalla porta 443 alla porta 80 e questa soluzione risolve il problema.

Zach McCormick Zach McCormick
6 giu 2016 17:54:57

Ho dovuto semplicemente inserire il codice $_SERVER['HTTPS'] = 'on'; perché HTTP_X_FORWARDED_PROTO non era nemmeno presente nelle impostazioni del server del mio cliente :|

Tom Roggero Tom Roggero
23 gen 2017 19:11:44

Ha risolto perfettamente il mio problema quando utilizzavo un load balancer AWS.

Josh Josh
12 apr 2017 18:27:46

Questo ha anche risolto il problema "Troppi reindirizzamenti" poiché il mio sito è dietro un load balancer su AWS.

voam voam
1 nov 2017 21:24:32

Penso sia importante aggiungere a questa risposta la correzione per il file .htaccess in questi casi: https://stackoverflow.com/questions/36748110/htaccess-too-many-redirects-when-trying-to-force-https, controlla la risposta di @harshal-lonare.

Gustavo Jantsch Gustavo Jantsch
5 ott 2018 18:29:29

Soluzione elegante. Grazie!!!

GTodorov GTodorov
13 giu 2023 00:34:28
Mostra i restanti 1 commenti
6
18

Poiché non ho ancora il privilegio di commentare, pubblicherò questa aggiunta come un'altra risposta:

La soluzione proposta da Elias, aggiungendo quanto segue al file wp-config.php, ha funzionato per me:

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// in alcune configurazioni HTTP_X_FORWARDED_PROTO potrebbe contenere  
// una lista separata da virgole, es. http,https  
// quindi verifica la presenza di https  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

Tuttavia, ha funzionato solo quando ho posizionato il codice prima di qualsiasi altra cosa in questo file!

14 set 2017 11:52:27
Commenti

Era esattamente il mio problema. Avevo inserito queste righe alla fine del file e non funzionava. Ero pronto a ricostruire il sito da zero. Spostandole in cima, bum, problema risolto. Grazie, grazie!!

Dean Poulin Dean Poulin
3 feb 2018 04:19:14

Questa soluzione è perfetta se stai usando un SSL flessibile dietro un DNS proxy come Cloudflare. Grazie.

Stefan P Stefan P
16 feb 2018 07:44:24

Confermo che funziona. Grazie mille, questo risolve molti problemi che avevamo con API e IFrame. Il sito non ha HTTPS abilitato, ma abbiamo bisogno che alcune pagine lo abbiano. WordPress dovrebbe avere questa opzione come impostazione predefinita...

Andy Andy
25 apr 2018 17:25:20

Per tua informazione - quel codice può essere posizionato ovunque ma deve essere prima di require_once( ABSPATH . 'wp-settings.php' ); che si trova alla fine del file.

Damodar Bashyal Damodar Bashyal
20 set 2019 03:42:21

Funziona, grazie

Mohammed Tawfik Mohammed Tawfik
28 apr 2020 03:22:35

funziona anche per me

Md. Amanur Rahman Md. Amanur Rahman
10 giu 2020 12:39:30
Mostra i restanti 1 commenti
2

Un'altra versione da aggiungere agli appunti, basta inserire questo all'inizio del file wp-config.php

Il motivo è che potrebbero esserci bilanciatori di carico o altri elementi che non passano correttamente il valore HTTPS, quindi devi recuperarlo da un'altra parte e "simularlo" per WordPress.

if ( (isset($_SERVER['HTTP_X_FORWARDED_PORT'] ) && ( '443' == $_SERVER['HTTP_X_FORWARDED_PORT'] ))
    || (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')) {
    $_SERVER['HTTPS'] = 'on';
}
21 feb 2017 14:33:57
Commenti

Ho appena utilizzato questa soluzione per un'installazione di WordPress 5.5.1 in esecuzione dietro un HAProxy su un firewall pfsense. Le altre soluzioni elencate non sembravano funzionare correttamente, almeno senza alcune modifiche a HAProxy e all'header che invia.

Swift Swift
24 set 2020 07:37:48

Nessun'altra soluzione suggerita ha funzionato tranne questa. Grazie mille

Mahbub Mahbub
16 nov 2020 19:26:32
1

Domanda di 5 anni fa...

Okay, ho avuto questo errore, dopo aver installato il mio Certificato SSL e aver cambiato tutti i link da http a https usando wp-cli.phar trovato qui.

Ho provato varie configurazioni e nessuna sembrava risolvere il problema, a meno che non impostassi questo:

define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true);

a questo:

define('FORCE_SSL_ADMIN', false);
define('FORCE_SSL_LOGIN', false);

Mi permetteva di accedere alla pagina di login, ma poi non riuscivo effettivamente a loggarmi. Ho provato la risposta numero due ma purtroppo non ha aiutato, fino a quando non ho fatto la seguente modifica:

/** SSL */   
define('FORCE_SSL_ADMIN', true);
// in alcune configurazioni HTTP_X_FORWARDED_PROTO potrebbe contenere
// una lista separata da virgole es. http,https   
// quindi verifica la presenza di https   
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== true)  
     $_SERVER['HTTPS']='on';

Per qualche motivo, non so perché - ho dovuto cambiare il

!== false

in

!== true

Sto eseguendo nginx come host e reverse proxy su nginx unit... Se qualcuno ha idea del perché abbia funzionato, per favore fatemelo sapere

19 lug 2019 14:15:31
Commenti

Mi hai salvato la giornata. Sei la persona più bella del mondo.

mobdevkun mobdevkun
16 lug 2024 22:16:50
0

In realtà... ho avuto questo problema e la soluzione è stata piuttosto semplice e imbarazzante. Per qualche motivo sul web host la mia cartella wp-admin era stata eliminata e quindi non c'era wp-admin con lo stesso messaggio di errore.

Dopo ore di test in tanti modi diversi, ho semplicemente notato questo e quando l'ho scaricata e ricaricata di nuovo tutto ha funzionato normalmente.

Controllate ragazzi, può essere così semplice.

10 feb 2019 16:22:18
0

Ho avuto lo stesso problema quando ho ospitato il mio sito su Azure webapp service Linux.

Prova questo plugin. Fai attenzione quando è attivo perché funziona. https://wordpress.org/plugins/jsm-force-ssl/

Questo plugin utilizza i filtri nativi di WordPress, anziché il buffer di output PHP, per massima affidabilità, prestazioni e compatibilità con la cache (questo plugin non influisce sulle prestazioni della cache), insieme a reindirizzamenti 301 permanenti per il miglior SEO (i reindirizzamenti 301 sono considerati i migliori per il SEO quando si passa da HTTP a HTTPS).

Rispetta le variabili di proxy / bilanciamento del carico per ambienti di hosting di grandi dimensioni:

HTTP_X_FORWARDED_PROTO HTTP_X_FORWARDED_SSL Requisiti:

Il tuo server web deve essere configurato con un certificato SSL e in grado di gestire richieste HTTPS.

Basta attivare il plugin e il gioco è fatto:

Non ci sono impostazioni del plugin da regolare e non vengono apportate modifiche alla tua configurazione WordPress — basta attivare o disattivare il plugin per abilitare / disabilitare i filtri e i reindirizzamenti dinamici.

7 mag 2020 17:25:39
0

Anche io ho riscontrato lo stesso problema e dopo ore di ricerca e modifiche sono riuscito a farlo funzionare. Condivido tutto ciò che ho fatto perché non sono sicuro se siano tutti correlati.

Innanzitutto, il mio sito WordPress è ospitato su cPanel, quindi ho utilizzato lo strumento Softaculous in cPanel per aggiornare la versione di WordPress.

In secondo luogo, ho aggiornato il database di WordPress.

(Ho notato che il mio file .htaccess nella cartella principale del sito è stato aggiornato con l'aggiunta di RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}])

Poi ho controllato il file .htaccess della mia cartella wp-admin e ho visto questi comandi:

Order Allow,Deny
Deny from all

Sul sito di WordPress ho letto che questi comandi servono a prevenire l'accesso web ai file in quella cartella, ma non era un comportamento di cui avevo bisogno (credo)

Quindi li ho commentati e sono riuscito a caricare la sezione di amministrazione.

19 feb 2021 15:32:05
0

Configura CloudFlare per utilizzare solo https e nel wp-config imposta

define('FORCE_SSL_ADMIN', false);
define('FORCE_SSL_LOGIN', false);
9 lug 2021 11:39:40
1

Grazie, ha funzionato per me. Mi hai migliorato la giornata

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// in alcune configurazioni HTTP_X_FORWARDED_PROTO potrebbe contenere  
// una lista separata da virgole, es. http,https  
// quindi verifica la presenza di https  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';
13 feb 2024 16:14:15
Commenti

È solo la risposta di Elias ?

Rup Rup
13 feb 2024 19:22:31