L'impostazione di $ _SERVER ['HTTPS'] = 'on' impedisce l'accesso a wp-admin
-
-
Non dicimolto del resto dellatua configurazione.Haiimpostato `define ('FORCE_SSL_ADMIN',true);`You dont say much about the rest of your configuration. Did you set `define('FORCE_SSL_ADMIN', true);`
- 1
- 2016-12-23
- user42826
-
Non ho definito "FORCE_SSL_ADMIN".Loproverò.I did not define 'FORCE_SSL_ADMIN'. I will try it.
- 0
- 2016-12-24
- nu everest
-
ènecessario verificare chei cookie https venganoinviati anche dalbilanciamento del carico su http.Sembra chenon siano statiinviati.Ovviamente ènecessario controllare ancheil contrario,sonoi cookie che siimpostano vengonotrasferiti su httpsyou need to check that the https cookies are also sent from the load balancer over http. It sounds like they are not sent. Obviously also the other way around need to be checked, are the cookies that you set are being transferred over https
- 0
- 2016-12-24
- Mark Kaplun
-
1 risposta
- voti
-
- 2016-12-24
Un ringraziamento speciale a user42826.
Secondoil codice:
Se WordPress è ospitato dietro unproxyinverso chefornisce SSL,ma è ospitato senza SSL,queste opzioniinizialmenteinvieranno qualsiasi richiestain un ciclo di reindirizzamentoinfinito. Perevitare ciò,puoi configurare WordPressper riconoscere l'intestazione HTTP_X_FORWARDED_PROTO (supponendo chetu abbia configurato correttamenteilproxyinversoperimpostaretaleintestazione).
Le seguenti azioni risolverannoilproblema.
Aggiungilo a wp-config.php. ( riferimento al codice )
/* Impostazioni SSL */ define ('FORCE_SSL_ADMIN',true); /* Attiva HTTPS "on" se HTTP_X_FORWARDED_PROTO corrisponde a "https" */ if (strpos ($ _ SERVER ['HTTP_X_FORWARDED_PROTO'],'https')!==false) { $ _SERVER ["HTTPS"]="on"; }
Rimuovilo dafunctions.phppoichénon ènecessario.
/** * Rendi PHP compatibile con HTTPStramite HTTP_X_FORWARDED_PROTO */ if (isset ($ _ SERVER ['HTTP_X_FORWARDED_PROTO']) & amp; & amp; $ _SERVER ['HTTP_X_FORWARDED_PROTO']=='https') { $ _SERVER ["HTTPS"]="on"; } Special thanks to user42826.
According to the codex:
If WordPress is hosted behind a reverse proxy that provides SSL, but is hosted itself without SSL, these options will initially send any requests into an infinite redirect loop. To avoid this, you may configure WordPress to recognize the HTTP_X_FORWARDED_PROTO header (assuming you have properly configured the reverse proxy to set that header).
The following actions will solve the problem.
Add this to wp-config.php. (codex reference)
/* SSL Settings */ define('FORCE_SSL_ADMIN', true); /* Turn HTTPS 'on' if HTTP_X_FORWARDED_PROTO matches 'https' */ if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) { $_SERVER['HTTPS'] = 'on'; }
Remove this from functions.php as it is unnecessary.
/** * Make PHP HTTPS aware via HTTP_X_FORWARDED_PROTO */ if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['HTTPS']='on'; }
-
Ilmotivo è chei cookie delle sessioniprotette siperdono quando sono dietroilbilanciamento del caricoperché LB stafacendo SSLmailbackend è semplice http.Èbello vedere altri lavorare su architetture di livello aziendale;)The reason is that secure sessions cookies get lost when behind the load balancer because LB is doing SSL but backend is plain http. Nice to see others working on enterprise level architectures ;)
- 1
- 2016-12-24
- user42826
-
@ user42826 La cosabella di questa configurazione è cheposso semplicemente commentare FORCE_SSL_ADMIN se voglioproibire l'accesso come amministratore,o ci sono altrieffetti collaterali che dovrebberoindurmi a riconsiderare questa linea dipensiero?@user42826 What is nice about this setup is that I can just comment out FORCE_SSL_ADMIN if I want to prohibit admin access, or are there other side effects that should cause me to reconsider this line of thinking?
- 0
- 2016-12-24
- nu everest
-
Nellatua configurazione,sembra chenonimpostare FORCE_SSL_ADMINimpedisca l'accesso come amministratore,ma ci sonomodimiglioriperfarlo a seconda delletueesigenze.Esempi:impedire l'accesso wp-admin o wp-login.phpin .htaccess o apache config,rimuovere l'autenticazionenativa di WPtramiteplug-in,ri-architettura WPin modo che l'URL di wp-admin sia diverso dall'URLpubblico,ecc.In your setup, it sounds like not setting FORCE_SSL_ADMIN prevents admin access, but there are better ways to do that depending on your requirements. Examples: prevent wp-admin or wp-login.php access in .htaccess or apache config, remove WP native authentication via plugin, re-architecture WP so that wp-admin url is different than public url, etc
- 1
- 2016-12-25
- user42826
-
Assicurati di aggiungere questo codiceprima della riga `require_once (ABSPATH. 'Wp-settings.php');`.[Un ringraziamento speciale ajtlin questa risposta.] (Https://wordpress.stackexchange.com/a/263461/78043)Make sure to add this code before the `require_once(ABSPATH . 'wp-settings.php');` line. [Special thanks to jtl in this answer.](https://wordpress.stackexchange.com/a/263461/78043)
- 6
- 2017-09-14
- Aaroninus
-
@Aaroninusgrazie,utilizzo SSLflessibile di Cloudflaree senzailtuo commento avreipassato deltempo a cercare dinuovo.Hotrovato questa domanda correlatain precedenza: https://wordpress.stackexchange.com/questions/170165/wordpress-wp-admin-https-redirect-loop@Aaroninus thanks, I use Cloudflare flexible SSL and without your comment I would have spent time searching again. I found this related question previously: https://wordpress.stackexchange.com/questions/170165/wordpress-wp-admin-https-redirect-loop
- 0
- 2017-12-21
- baptx
-
Hafunzionato sull'istanza di Amazon.Stavo lottandoper spostareil codicein alto hafattoil lavoro.It worked on amazon instance. Was struggling moving the code to top did the job.
- 0
- 2018-09-11
- Krishnadas PC
Prima dituttoilmio server è seduto dietro unbilanciatore del carico. Ilmio certificato SSL sitrova sulbilanciamento del caricoe gestisce HTTPS. I datiin arrivo sullaporta 443 vengonoinoltrati al server Wordpress utilizzando HTTP sullaporta 80.
Tuttavia,wordpresse phpnon conoscono la configurazione delmio server. Ciòfa sì cheilbrowser siinsospettisca sulla validità delmio certificato SSL valido.
Per risolvere questoproblema ho aggiuntoil seguente codice afunctions.php. Hotrovato questo codice qui e il codex è d'accordo .
Funzionabenissimoperilfrontend,ma ora/wp-admin/èinaccessibile anche conilmio account di amministratore. Dopo avereffettuato l'accesso,ricevo unmessaggio: "Spiacenti,non sei autorizzato ad accedere a questapagina". Non vienefornitonessun altro aiuto.
Quindi ho cercatonella cartella wp-admine ho scoperto che leparole "Spiacenti,non sei autorizzato ad accedere a questapagina". appaiono 17 volte diverse.
Lamaggiorparte di questimessaggi dierrore è associata a un controllo delle autorizzazioni dell'utente.
Comefaccio amantenere HTTPS "attivo"e amantenere l'accesso come amministratore?
Riepilogo:
AGGIORNAMENTO:
Ho scoperto cheilmessaggio dierroreproviene da wp-admin/menu.phpe questopezzo di codicein fondo. Ho aggiunto
menu.php
allafine dell'erroreper capire che sitrattava di questofile.Continuo anon capire come risolvere questoproblema.