Hai il certificato SSL attivo, ma il tuo sito si apre ancora anche in http://? Allora il lavoro è fatto a metà. Finché esistono due versioni del sito, una sicura e una no, alcuni visitatori finiranno su quella non cifrata, i motori di ricerca potrebbero vedere contenuti duplicati e i link condivisi resteranno in http://. In questo articolo vediamo come forzare HTTPS in modo pulito su WordPress, su PrestaShop e, in generale, tramite il file .htaccess.
Prima di iniziare: tre controlli
- Il certificato deve funzionare. Apri
https://tuodominio.itehttps://www.tuodominio.it: entrambi devono caricarsi senza avvisi. Sui piani iWebLab il certificato Let’s Encrypt è emesso in automatico su ogni dominio; se uno dei due indirizzi dà errore, fermati e apri un ticket prima di impostare il reindirizzamento. - Fai un backup. Modificheremo impostazioni del CMS e file di configurazione. Con JetBackup puoi comunque ripristinare da solo file e database dal pannello, ma un backup fatto subito prima ti permette di tornare indietro all’istante.
- Scegli la versione «principale». Decidi se il sito deve rispondere con o senza
www, e usa sempre quella. Il reindirizzamento ideale porta qualsiasi variante direttamente all’indirizzo definitivo, in un solo passaggio.
WordPress
1. Aggiorna gli indirizzi del sito
Nella bacheca di WordPress vai su Impostazioni › Generali e modifica i due campi:
- Indirizzo WordPress (URL)
- Indirizzo sito (URL)
sostituendo http:// con https://. Salva: WordPress ti farà uscire e dovrai rientrare, questa volta già in HTTPS.
Se i due campi risultano non modificabili (grigi), significa che sono definiti nel file wp-config.php con le costanti WP_HOME e WP_SITEURL. In quel caso aggiorna lì gli indirizzi:
define( 'WP_HOME', 'https://www.tuodominio.it' );
define( 'WP_SITEURL', 'https://www.tuodominio.it' );
2. Proteggi l’area di amministrazione
Per essere sicuro che il pannello di WordPress sia sempre usato in HTTPS, puoi aggiungere in wp-config.php, prima della riga «That’s all, stop editing!», questa costante:
define( 'FORCE_SSL_ADMIN', true );
3. Reindirizza le visite in http
Cambiare gli indirizzi nelle impostazioni non basta a reindirizzare chi arriva da vecchi link in http://. Per questo serve una regola nel file .htaccess, che vediamo più sotto. Molti plugin di cache e sicurezza offrono un’opzione per farlo, ma la regola nel .htaccess resta la soluzione più semplice e leggera.
4. Aggiorna i link nei contenuti
Immagini e link interni inseriti negli articoli prima del passaggio contengono ancora http://. Vanno aggiornati nel database, altrimenti avrai contenuti misti. Usa uno strumento di ricerca e sostituzione che gestisca correttamente i dati serializzati di WordPress (un normale «trova e sostituisci» sul file SQL può rompere le impostazioni di temi e page builder). Abbiamo dedicato a questo tema un articolo specifico sui contenuti misti.
PrestaShop
1. Attiva SSL nelle impostazioni del negozio
Nel back office di PrestaShop apri le impostazioni generali del negozio (in PrestaShop 1.7 e successivi si trovano in Parametri negozio › Generale). Qui trovi:
- Abilita SSL: attivalo per primo e salva;
- Abilita SSL su tutte le pagine: dove presente, attivalo dopo aver salvato il primo, così tutto il negozio viene servito in HTTPS e non solo carrello e account.
PrestaShop stesso suggerisce di verificare che il sito funzioni in HTTPS prima di attivare l’opzione: segui l’ordine indicato e, dopo ogni modifica, prova a navigare il negozio.
2. Controlla l’indirizzo del negozio
In Parametri negozio › Traffico e SEO trovi il dominio del negozio e il dominio SSL. Assicurati che siano corretti e coerenti con la versione principale (con o senza www) che hai scelto.
3. Svuota la cache
Dopo le modifiche svuota la cache di PrestaShop da Parametri avanzati › Prestazioni. Se usi il modulo iWebLab Cache o altri sistemi di cache, svuota anche quelli, altrimenti potresti continuare a vedere pagine generate prima del passaggio.
4. Attenzione al .htaccess di PrestaShop
PrestaShop rigenera automaticamente il proprio .htaccess quando modifichi alcune impostazioni (ad esempio gli URL semplificati). Il codice compreso fra i commenti # ~~start~~ e # ~~end~~ viene riscritto, mentre quello al di fuori di quel blocco viene conservato. Se aggiungi una regola personalizzata, mettila quindi in cima al file, prima di # ~~start~~.
Il reindirizzamento con .htaccess
Il file .htaccess si trova nella cartella principale del sito (sui nostri piani, public_html all’interno della cartella del dominio). Puoi modificarlo dal file manager del pannello oppure via FTPS sulla porta 2100 o SFTP sulla porta 2300 con le credenziali di un account FTP.
Ecco una regola classica che reindirizza tutte le visite in http:// verso la stessa pagina in https://:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
E una variante che, oltre a forzare HTTPS, porta tutto sulla versione con www:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,R=301]
Qualche consiglio:
- metti la regola all’inizio del file, prima delle regole di WordPress (
# BEGIN WordPress) o del blocco di PrestaShop; - usa il codice 301 (spostamento permanente): comunica ai motori di ricerca che l’indirizzo definitivo è quello in HTTPS;
- non usare entrambe le varianti insieme e non duplicare la regola in un plugin: due reindirizzamenti che si contraddicono creano un ciclo.
Se il sito è sotto la rete iWebLab Edge
Quando il sito è servito tramite la rete iWebLab Edge (o, in generale, dietro un proxy o una CDN), la connessione del visitatore arriva prima ai punti di presenza della rete e poi al server. In questi casi una regola basata solo su %{HTTPS} potrebbe non comportarsi come ti aspetti e causare un ciclo di reindirizzamenti. Inoltre i reindirizzamenti possono essere memorizzati nella cache. Prima di aggiungere regole di questo tipo su un sito sotto Edge, apri un ticket: ti diciamo come procedere nel tuo caso.
Come verificare che funzioni
- apri una finestra in navigazione privata (così eviti la cache del browser);
- digita le quattro varianti:
http://tuodominio.it,http://www.tuodominio.it,https://tuodominio.it,https://www.tuodominio.it; - tutte devono portarti all’indirizzo principale in HTTPS, con il lucchetto e senza avvisi;
- prova anche una pagina interna, ad esempio un articolo o un prodotto, per controllare che il percorso venga mantenuto.
Se il browser mostra «troppi reindirizzamenti», hai probabilmente due regole che si rincorrono: togli l’ultima modifica e ricontrolla.
Dopo il passaggio
- aggiorna l’indirizzo del sito negli strumenti per i webmaster e negli strumenti di statistica che usi;
- controlla che non restino contenuti misti (immagini, script o font caricati in
http://); - aggiorna i link nei profili social, nelle firme email e nei materiali promozionali.
Serve una mano?
Se qualcosa non torna, ad esempio un ciclo di reindirizzamenti o una pagina che non si apre più, ripristina il .htaccess precedente e apri un ticket dall’area clienti indicando il dominio e le modifiche fatte. Ti aiutiamo a trovare la configurazione giusta.