Come migrare un'installazione HTTPS di WordPress su localhost?
Ho migrato un sito da un server live a localhost utilizzando il plugin WP Migrate DB. Ho già eseguito questo processo diverse volte e tutto è sempre andato bene. Questa volta però ho migrato un sito da una connessione https e non riesco ad accedere al sito sul mio localhost. Mi viene restituito il seguente errore:
Questo sito non può fornire una connessione sicura
localhost ha inviato una risposta non valida.
ERR_SSL_PROTOCOL_ERROR
Suppongo che nel backend di WordPress devo modificare qualcosa nel database, oppure nel Pannello di controllo > Impostazioni > scheda Generale.
Al momento però non riesco ad accedere al sito, quindi penso che dovrò farlo tramite il database?
Qualsiasi aiuto o assistenza sarebbe fantastico. Non so bene da dove iniziare.
Paul.

Questo accade perché i valori site_url
e homeurl
della tua installazione originale sono impostati su HTTPS nel database, quindi non puoi accedere al tuo sito web su localhost a meno che tu non:
- Modifichi questi valori in non-ssl
- Installi un certificato SSL su localhost
Spiegherò solo il primo caso poiché l'installazione di un certificato esula dallo scopo di questa community.
Per farlo, hai 2 opzioni.
Modifica direttamente il file SQL scaricato
Apri l'esportazione MySQL che hai appena scaricato dal tuo server. Cerca wp_options
e troverai una riga nel tuo database simile a questa:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
Le 2 righe sotto questa sono siteurl
e homeurl
. Modifica entrambi i loro valori in http://localhost/
. Fai attenzione agli apici e alle virgole! Quindi, le prime 3 righe appariranno così:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
(1, 'siteurl', 'http://localhost/', 'yes'),
(2, 'home', 'http://localhost', 'yes'),
Poi carica il tuo file SQL. Fatto.
Aggiorna i valori tramite PHPMyAdmin
Se hai PHPMyAdmin installato sul tuo localhost, o hai abbastanza conoscenza per aggiornare direttamente le tabelle via riga di comando, procedi con questo metodo.
Accedi al tuo database tramite PHPMyAdmin. Dal menu di navigazione a sinistra, scegli il database corretto. Ora, seleziona la tabella wp_options
dalla sezione destra.
Di nuovo, i primi due valori saranno siteurl
e homeurl
, che puoi semplicemente aggiornare a http://localhost/
senza preoccuparti di fare errori modificando il file SQL originale.

Grazie Jack, ho seguito il secondo dei tuoi due suggerimenti e ora è tutto a posto. Apprezzo il tuo aiuto.

Un cerca e sostituisci con lo script SearchReplaceDB2 di interconnetit per passare da https a http sarebbe anche una buona opzione. Questo può essere fatto anche con wp-cli.

Oltre al caso descritto qui, dovresti rinominare wp-content/plugins/really-simple-ssl per disattivarlo.

Nella tabella wp_options, troverai due righe che contengono l'URL del sito. Modifica quei due valori.
Tuttavia, i tuoi media e altri collegamenti alle pagine interne potrebbero dover essere regolati. Ecco perché lascio che il fantastico plugin WP Clone (https://wordpress.org/plugins/wp-clone-by-wp-academy/) faccia tutto il lavoro per me. Basta installare il plugin sul sistema sorgente, fare il backup, poi installare il plugin sul sistema di destinazione e ripristinare.
Ottimo plugin, elimina tutto il lavoro necessario per spostare (clonare) un sito. A volte devo eseguire il ripristino due volte (il primo fallisce per un motivo misterioso), ma il tentativo successivo funziona perfettamente. Tutti i dati, utenti, contenuti, ecc. vengono trasferiti in modo impeccabile.

Per quanto mi riguarda, la situazione era diversa dalle altre risposte. Il mio database era configurato correttamente su http://localhost
ma avevo installato un plugin per gestire SSL (Really Simple SSL).
Quindi ho rinominato la cartella /wp-content/plugins/really-simple-ssl
con un nome diverso e ha funzionato.
Per accedere a /wp-admin
senza SSL, è necessario modificare il file /wp-config.php
e impostare FORCE_SSL_ADMIN
su false
.

Ho riscontrato questo problema. Ecco cosa ho fatto:
- rimosso il plugin wp-security
- rimosso la definizione FORCE_SSL dal wp-config.php
- pulito la cache del browser
- modificato i valori site_url e home_url nella tabella wp-options
- aggiornato il file .htaccess con quello predefinito di WordPress
Niente di tutto questo ha funzionato.
Alla fine la soluzione è stata:
Rimuovere definitivamente il file .htaccess ha risolto il problema.
Spero che questo possa aiutare qualcuno a risolvere lo stesso problema.

Grazie mille!!!! la tua risposta merita di salire direttamente in cima! Mi hai salvato il culo, amico!!!! Grazie!!!!!!

@armah - in realtà erano delle regole specifiche all'interno del file a causare il problema. Commentarle ha risolto il problema. Grazie per il tuo aiuto!

Puoi farlo rapidamente con queste 2 costanti offerte da WordPress.
Aggiungile all'inizio del file wp-config.php
e dopo l'apertura dei tag <?php
.
define ('WP_HOME', 'http://localhost/nome-cartella-wordpress' );
define ('WP_SITEURL', 'http://localhost/nome-cartella-wordpress' );
