Impedire a WordPress di utilizzare HTTPS e utilizzare solo HTTP

27 mar 2016, 21:06:34
Visualizzazioni: 81.4K
Voti: 10

Oggi ho sincronizzato il database di un sito web di sviluppo con il database di un sito web di produzione.

Ora, il mio sito web di sviluppo restituisce un errore "404 Not Found". L'URL inizia con HTTPS, e c'è una barra rossa attraverso il testo HTTPS. La pagina 404 dice "Il server non riesce a trovare la pagina richiesta: dev.greenbee-web.com/ilaimh/wp-admin/ (porta 443). Apache Server su dev.greenbee-web.com Porta 443".

Non mi ero reso conto che il sito web di produzione utilizzasse HTTPS (sono un dipendente e quindi non sono l'unico a lavorare su questo sito web). Questo ha fatto sì che il sito web di sviluppo ora utilizzi HTTPS, ma voglio che utilizzi HTTP. Non riesco a capire dove, in nessuno dei file di configurazione di WordPress, posso far tornare il sito web di sviluppo a utilizzare HTTP.

C'è qualche impostazione in wp-config che sta forzando il mio sito di sviluppo a utilizzare HTTPS? Se non in wp-config, dove si trova l'impostazione che sta forzando il sito a utilizzare HTTPS?

Grazie

3
Commenti

il tuo ambiente di sviluppo e staging dovrebbe sempre corrispondere il più possibile all'ambiente di produzione. Non utilizzare lo stesso protocollo è una deviazione molto grande che non è giustificata in alcun modo

Mark Kaplun Mark Kaplun
27 mar 2016 21:34:10

ciao... Per prima cosa controlla le impostazioni globali (campi URL) di WordPress. Successivamente, nella maggior parte dei casi, c'è un file (e anche alcuni plugin) che possono essere correlati al tuo problema: nel file .htaccess situato nella directory principale del tuo sito WordPress, devi cercare qualcosa come RewriteRule ^(.*)$ https://www.tuosito.com/$1 [R,L]... Anche alcuni plugin di sicurezza o plugin "SSL" possono essere responsabili.

LoicTheAztec LoicTheAztec
28 mar 2016 01:54:44

@MarkKaplun - questa è una risposta inaccettabile alla domanda. Per favore, spiega nel dettaglio come posso installare un certificato valido per un server su una rete locale con un IP non instradabile, o installare un certificato SSL valido su un server pubblico per un indirizzo IP. Quando si passa dallo sviluppo al live, bisogna comunque cambiare tutti gli URL.

Craig Jacobs Craig Jacobs
27 gen 2019 21:23:41
Tutte le risposte alla domanda 5
2
11

Ci sono 2 cose che devi fare.

Se stai utilizzando il server Apache, vai su .htaccess e modifica il motore Rewrite e RewriteBase in:

RewriteEngine On

RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Se stai utilizzando Nginx, qualcosa come questo dovrebbe funzionare:

server {
   listen 80 443;
   server_name example.com;
   # aggiungi le impostazioni ssl
   return 301 https://example.com$request_uri;
}

Questo reindirizzerà l'https a http

e vai al database attraverso phpmyadmin o quello che usi vai su wp_options e trova e modifica i valori siteurl e home da https://example.com a http://example.com

Pulisci la tua cache e riprova. Dovrebbe funzionare senza problemi. Se il sito continua a chiedere SSL, controlla il tuo file wp-config.php per vedere se contiene questo codice:

define('FORCE_SSL_ADMIN', true);

poi cambia 'true' in 'false'

Spero che questo ti aiuti.

29 mar 2016 11:47:02
Commenti

Nel mio caso si è risolto con il tuo ultimo suggerimento, commentando queste righe: //define( 'FORCE_SSL_LOGIN', 1 ); //define( 'FORCE_SSL_ADMIN', 1 );

TARKUS TARKUS
17 lug 2018 01:37:15

per IIS, cosa posso fare per disabilitare http? Ho provato a definire define('FORCE_SSL_ADMIN', true); ma non ha funzionato

Malcolm Salvador Malcolm Salvador
13 mar 2020 20:14:14
0

Ci sono un paio di fattori da considerare qui.

Innanzitutto, potresti voler verificare le impostazioni del sito in wp_options (o wp_X_options se sei in un setup multisite), in particolare i valori di:

  • home
  • siteurl

Le altre tabelle che potresti voler controllare sono:

  • wp_blogs
  • wp_domain_mapping
  • wp_options
  • wp_site
  • wp_sitemeta

Non so che tipo di sistema usiate per sincronizzare il vostro database di sviluppo con quello di produzione, ma noi abbiamo uno script SQL che eseguiamo dopo aver clonato un subset del database di produzione.

UPDATE wp_dev.wp_blogs SET domain = REPLACE(domain, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_domain_mapping SET domain = REPLACE(domain, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_options SET option_value = REPLACE(option_value, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_site SET domain = REPLACE(domain, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_sitemeta SET meta_value = REPLACE(meta_value, "https://produrl.com", "http://devurl.com");

Sostituisci wp_dev con il tuo database locale, e produrl.com e devurl.com secondo necessità. Ma nota che questo cambia gli URL interni da HTTPS a HTTP.

Infine, potrebbe essere necessario modificare la configurazione locale di WP e aggiornare queste due impostazioni:

define('FORCE_SSL_LOGIN', false);
define('FORCE_SSL_ADMIN', false);
16 ott 2018 01:44:59
0

Grazie Loic. Sto usando BackupBuddy per copiare i miei siti web attivi e ripristinarli su WAMP. Uno dei siti continuava a cercare di utilizzare HTTPS. Ho provato a installare un certificato su WAMP locale senza successo.

Ho controllato la directory del mio sito ripristinato localmente e ho rimosso la cartella simple ssl.

Boom. Ora funziona e rimane su HTTP

Cavolo, è stato troppo semplice. Grazie ancora.

4 mar 2019 01:07:38
2

Se il bilanciatore di carico termina SSL (https), WordPress riceverà traffico HTTP e reindirizzerà a HTTPS, anche se il traffico verso il bilanciatore di carico è HTTPS, causando un reindirizzamento infinito.

Per risolvere questo problema, ho questo nel mio wp-config.php:

  $_SERVER['HTTPS'] = 'on';

Oppure una soluzione leggermente più complessa (per installazioni personalizzate):

  if (getenv('use_ssl')) {
    $_SERVER['HTTPS'] = 'on';
  }
24 giu 2022 01:10:54
Commenti

È vero, e c'è anche una nota a riguardo nella documentazione di WordPress: Amministrazione via SSL. Lì testano un'intestazione comune impostata dal bilanciatore di carico.

Rup Rup
24 giu 2022 03:04:04

(Non sono sicuro che sia esattamente ciò di cui si parla in questa domanda però.)

Rup Rup
24 giu 2022 03:04:18
4
-3

Il tuo ambiente di sviluppo e staging dovrebbe sempre corrispondere il più possibile all'ambiente di produzione. Non utilizzare lo stesso protocollo è una deviazione molto grande che non è giustificata in alcun modo.

Dal momento che è la tua organizzazione, installa semplicemente lo stesso certificato sul tuo ambiente di sviluppo, oppure se è vincolato a un IP specifico per qualche motivo, generane uno nuovo per il tuo ambiente di sviluppo.

5 set 2017 11:34:57
Commenti

Voto negativo perché questo non risponde alla domanda.

naomi naomi
26 feb 2020 16:13:04

@naomi Sono veramente sorpreso che in questa epoca in cui tutto è HTTPS ci sia ancora il suggerimento che abbia senso cercare di supportare HTTP. L'unica vera risposta è sistemare l'ambiente di sviluppo

Mark Kaplun Mark Kaplun
2 mar 2020 16:07:53

La domanda era come impedire a WP di forzare SSL. Sono arrivato qui perché avevo questo problema con siti locali sul mio laptop.

naomi naomi
2 mar 2020 17:31:46

Sì, lo sviluppo locale risente dell'uso di HTTPS, ma se non usi HTTPS come fai a sapere che le tue risorse vengono caricate correttamente? Se, come l'OP, hai la fiducia del proprietario del sito puoi chiedere di ottenere il suo certificato e configurare correttamente il dominio e il certificato sul tuo laptop

Mark Kaplun Mark Kaplun
3 mar 2020 18:52:23