Impedire a WordPress di utilizzare HTTPS e utilizzare solo HTTP
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

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.

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

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);

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.

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';
}

È 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.

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.

@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

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

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
