Vai al contenuto

Impostazioni cookie

Scelga per ogni tipo quali cookie consente. Può modificare la sua scelta in qualsiasi momento tramite Impostazioni cookie in fondo a ogni pagina. Informativa sulla privacy

Necessari

Sempre attivi

Servono per accedere, conservare il carrello e ricordare le sue scelte. Sono sempre attivi.

Quali cookie?
  • weboke_sessie, weboke_klant, weboke_remember: la sua sessione e la permanenza dell'accesso
  • weboke_basket: il suo carrello
  • wkBtwIncl: visualizzazione dei prezzi con o senza IVA
  • wok_cookies: la sua scelta sui cookie, 12 mesi

Misurano quale annuncio porta a una visita o a un ordine, così non paghiamo annunci che non funzionano.

Quali cookie?
  • Google Ads tramite Google Tag Manager (_gcl_au, _gcl_aw), fino a 90 giorni
  • OpenAI Ads, annunci in ChatGPT
  • wok_aff: tramite quale partner è arrivato da noi (programma di affiliazione), 60 giorni

4,6

Paese e lingua

Ogni paese ha il suo sito, con i prezzi e l'IVA di quel paese.

Vedi

Modulo 3 · 3.2

www, reindirizzamento e contenuti misti

Modulo 3: Indirizzo, https e utenti · Tempo di lettura: 9 minuti

Obiettivo della lezione: Dopo questa lezione saprà scegliere un unico indirizzo principale, inviare tutte le varianti con un solo reindirizzamento verso di esso e individuare e risolvere i contenuti misti.

Concetti chiave: indirizzo canonico, 301 e 308, catena di reindirizzamenti, contenuti misti (mixed content), ricerca e sostituzione nel database, dati serializzati

Quattro indirizzi, un solo sito

Il Suo sito è raggiungibile tramite quattro indirizzi:

http://example.com
http://www.example.com
https://example.com
https://www.example.com

Per un visitatore questo non fa differenza, ma per i motori di ricerca si tratta di quattro indirizzi diversi con lo stesso contenuto. Anche i cookie (come il cookie di accesso) valgono per nome: chi accede su www non risulta connesso sul dominio senza www. Per questo si sceglie un indirizzo canonico (l'indirizzo principale) e si reindirizzano gli altri tre verso di esso.

Quale scegliere è una questione di preferenza (lezione 2.1). L'importante è che l'indirizzo principale sia identico ovunque: nel DNS, nel certificato, in Impostazioni > Generale (lezione 3.1) e nei reindirizzamenti.

Reindirizzare con un 301, in un solo passaggio

Un reindirizzamento è una risposta del server: "questa pagina si trova altrove". Il browser passa quindi automaticamente al nuovo indirizzo. Il codice indica il tipo di reindirizzamento:

CodiceSignificatoUtilizzo
301Trasferito permanentementeLa scelta fissa per http verso https e per www verso il dominio senza www (o viceversa)
308Permanente, e il metodo (ad esempio l'invio di un modulo) resta invariatoPuò essere usato anche per questo scopo; browser e motori di ricerca lo trattano come un 301
302 o 307TemporaneoSolo per qualcosa di realmente temporaneo, come una pagina di manutenzione

Un reindirizzamento permanente comunica ai motori di ricerca che il nuovo indirizzo è quello effettivo. Con uno temporaneo, continuano a ricordare il vecchio indirizzo.

Faccia attenzione anche alla catena. Supponiamo che il Suo indirizzo principale sia https://example.com. In questo caso desidera:

http://www.example.com   301  https://example.com/
http://example.com       301  https://example.com/
https://www.example.com  301  https://example.com/
https://example.com      200

Ogni variante arriva all'indirizzo principale in un solo passaggio. Ciò che spesso accade invece è:

http://www.example.com   301  https://www.example.com/
https://www.example.com  301  https://example.com/

Funziona comunque, ma costa un passaggio in più (tempo di attesa aggiuntivo, soprattutto su mobile) e una stretta di mano TLS in più. Peggio ancora è un ciclo: il server web reindirizza verso https, WordPress reindirizza indietro verso http perché gli indirizzi nelle impostazioni sono ancora su http, e il browser segnala "troppi reindirizzamenti". In quel caso due impostazioni si contrastano a vicenda. Assicuri che ci sia una sola parte che reindirizza verso https (il server web o il pannello), e che gli indirizzi in WordPress siano già impostati sull'indirizzo principale.

Anche WordPress effettua reindirizzamenti: se qualcuno richiede https://www.example.com/contact/ mentre l'indirizzo del sito è https://example.com, WordPress reindirizza verso https://example.com/contact/. Questo funziona solo se la richiesta arriva a WordPress, quindi se il server web fa sì che anche il nome www punti a questo sito.

Contenuti misti

I contenuti misti (mixed content) sono una pagina https che carica elementi tramite http://: un'immagine, un foglio di stile, uno script, un font o un video incorporato. Il browser considera questo non sicuro, perché tali elementi possono essere modificati durante il trasferimento.

  • Script, fogli di stile e iframe tramite http vengono bloccati dai browser. Il Suo sito può apparire danneggiato o una funzione può non funzionare.
  • Immagini, audio e video tramite http: i browser moderni provano automaticamente a recuperarli tramite https; se questo non riesce, vengono bloccati. Il lucchetto può allora mostrare un avviso.

Da dove proviene il problema:

  1. Vecchi link nel Suo contenuto: un sito che un tempo era su http ha in migliaia di articoli <img src="http://example.com/wp-content/uploads/...">. WordPress salva questi link letteralmente nel database.
  2. Impostazioni di tema o plugin con un indirizzo completo, ad esempio un logo o uno sfondo con http://.
  3. Elementi esterni di un altro sito raggiungibili solo tramite http. Questi vanno sostituiti o rimossi.
  4. Indirizzi in Impostazioni > Generale ancora impostati su http (lezione 3.1).

Come trovarli

Apra la pagina, prema F12 e guardi nella scheda Console. Il browser segnala ogni contenuto misto con l'indirizzo dell'elemento. In alternativa, cerchi nel codice sorgente della pagina (Ctrl+U) src="http:// e href="http://. I link verso altri siti nel testo normale (<a href="http://...">) non costituiscono contenuto misto; si tratta di elementi che la pagina carica.

Cercare e sostituire, ma nel modo corretto

La soluzione per i vecchi link nel Suo contenuto è sostituire tutti gli http://example.com nel database con https://example.com. La tentazione è di usare un comando SQL come:

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');

Non lo faccia. Molte impostazioni di temi, plugin e widget sono memorizzate in forma serializzata. L'aspetto è il seguente:

s:27:"http://example.com/logo.png";

s:27 significa: segue un testo di 27 caratteri. Dopo una sostituzione semplice il testo è di 28 caratteri (si è aggiunta una s), ma il numero indicato rimane 27. PHP non riesce più a leggere il valore e l'impostazione scompare silenziosamente: un menu vuoto, un logo sparito, widget mancanti.

Utilizzi uno strumento che aggiorna correttamente queste lunghezze:

  • WP-CLI: prima verifichi, poi esegua.
wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://example.com' 'https://example.com' --all-tables

Con --dry-run vede quante sostituzioni verrebbero effettuate per tabella, senza modificare nulla.

  • Un plugin di ricerca e sostituzione che supporti i dati serializzati (ce ne sono diversi nella directory plugin di wordpress.org). Rimuova poi nuovamente il plugin.

Esegua sempre prima un backup (lezione 8.1). Non sostituisca mai qualcosa come example.com senza http:// davanti: in tal caso modificherebbe anche indirizzi email e altri testi.

In pratica: come appare in un pannello

Come esempio utilizziamo DirectAdmin. Altri pannelli hanno un interruttore simile per "sempre https".

  1. Nelle impostazioni del dominio, attivi Forza SSL con reindirizzamento https (lezione 3.1).
  2. Scelga, per il dominio, se www deve puntare al dominio senza www o viceversa (in DirectAdmin nelle impostazioni del dominio; altrimenti con un reindirizzamento tramite Reindirizzamenti del sito o .htaccess).
  3. Verifichi la catena con il comando qui sotto oppure con gli strumenti di sviluppo del Suo browser (scheda Rete, con la casella "Mantieni registro" attiva).

Riepilogo

  • Scelga un indirizzo canonico e faccia sì che le altre tre varianti vi arrivino con un 301 (o 308), in un solo passaggio.
  • Lasci che solo una parte reindirizzi verso https; altrimenti si crea un ciclo.
  • I contenuti misti sono una pagina https che carica elementi tramite http; la console del browser mostra quali.
  • I vecchi link nel database si sostituiscono con wp search-replace o un plugin che comprenda i dati serializzati, mai con un semplice SQL REPLACE.
  • Sempre prima un backup, e prima un test di prova.

Quiz

1. Quale reindirizzamento si usa per inviare http in modo permanente verso https?



2. Dopo aver attivato "sempre https", il browser segnala "troppi reindirizzamenti". Qual è la causa più probabile?



3. Perché UPDATE ... REPLACE(...) in SQL è pericoloso per convertire gli indirizzi?



4. Quale elemento su una pagina https viene sempre bloccato dal browser se caricato tramite http?



Esercizio

Esercizio A3.2: Un solo indirizzo principale e nessun contenuto misto. Inserisca il Suo dominio. Il programma apre le quattro varianti (http e https, con e senza www) e segue i reindirizzamenti. L'esito è positivo se tutte e quattro arrivano allo stesso indirizzo con https, con al massimo un reindirizzamento per variante e solo codici permanenti (301 o 308). In seguito il programma legge l'HTML della homepage e cerca script, fogli di stile, immagini, iframe e font caricati tramite http://.

Esercizio A3.2: Un solo indirizzo principale e nessun contenuto misto


Quello che inserisce e quello che rileviamo non vengono salvati. Il Suo browser ricorda le Sue risposte e se ha superato l'esercizio. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che l'esercizio era (quasi) corretto; anche lì può eliminarlo.

Per saperne di più

Questi articoli descrivono i passaggi nei pannelli di WebOké; in altri pannelli funzionano in modo simile.

Un momento…

Configuri i suoi domini

Per ogni dominio imposti i nameserver, il collegamento al suo hosting e chi ne diventa l'intestatario.

Caricamento dei suoi domini…