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

www, reindirizzamento e contenuti misti

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

Obiettivo della lezione: al termine di questa lezione saprà scegliere un unico indirizzo principale, indirizzare tutte le varianti verso di esso con un solo reindirizzamento e individuare e risolvere i contenuti misti (mixed content).

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

Quattro indirizzi, un solo sito web

Il Suo sito web è raggiungibile tramite quattro indirizzi:

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

Per un visitatore non fa differenza, ma per i motori di ricerca si tratta di quattro indirizzi diversi con lo stesso contenuto. Anche i cookie (come il Suo cookie di accesso) valgono per singolo 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 gusti (lezione 2.1). L'importante è che l'indirizzo principale sia lo stesso ovunque: nel DNS, nel certificato, in Impostazioni > Generali (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 di che tipo di reindirizzamento si tratta:

CodiceSignificatoUtilizzo
301Spostato in modo permanenteLa scelta standard da http a https e da www al dominio senza www (o viceversa)
308Permanente, e il metodo (ad esempio l'invio di un modulo) resta invariatoSi può usare anche per questo scopo; browser e motori di ricerca lo trattano come un 301
302 o 307TemporaneoSolo per qualcosa di davvero temporaneo, come una pagina di manutenzione

Un reindirizzamento permanente comunica ai motori di ricerca che il nuovo indirizzo è quello vero. 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 tal caso Lei 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 accade spesso:

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

Funziona, ma costa un passaggio in più (tempo di attesa aggiuntivo, soprattutto su mobile) e un handshake TLS in più. Peggio ancora è un ciclo: il server web reindirizza a https, WordPress rimanda a http perché gli indirizzi nelle impostazioni sono ancora in http, e il browser segnala "troppi reindirizzamenti". In quel caso due impostazioni lavorano l'una contro l'altra. Si assicuri che un solo soggetto reindirizzi a 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 a https://example.com/contact/. Questo funziona solo se la richiesta arriva a WordPress, quindi se il server web fa puntare anche il nome www a questo sito.

Contenuti misti

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

  • Script, fogli di stile e iframe caricati via http vengono bloccati dai browser. Il Suo sito web appare allora danneggiato oppure una funzione non funziona.
  • Immagini, audio e video caricati via http vengono richiesti automaticamente via https dai browser moderni; se non è possibile, vengono bloccati. Il lucchetto può allora mostrare un avviso.

Da dove provengono:

  1. Vecchi link nei Suoi contenuti: un sito web che in passato era in http contiene in migliaia di articoli <img src="http://example.com/wp-content/uploads/...">. WordPress salva questi link alla lettera nel database.
  2. Impostazioni del tema o dei plugin con un indirizzo completo, ad esempio un logo o uno sfondo con http://.
  3. Elementi esterni di un altro sito raggiungibili solo via http. Questi vanno sostituiti o rimossi.
  4. Indirizzi in Impostazioni > Generali ancora impostati su http (lezione 3.1).

Come individuarli

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 ad altri siti nel testo normale (<a href="http://...">) non generano contenuti misti; si tratta delle cose che la pagina carica.

Cerca e sostituisci, ma nel modo giusto

La soluzione per i vecchi link nei Suoi contenuti consiste nel sostituire tutti gli http://example.com nel database con https://example.com. La tentazione è 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 salvate in forma serializzata. Ha questo aspetto:

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

Il s:27 significa: segue un testo di 27 caratteri. Dopo una semplice sostituzione il testo è di 28 caratteri (si è aggiunta una s), ma c'è ancora scritto 27. PHP non riesce più a leggere il valore e l'impostazione scompare senza avvisi: un menu vuoto, un logo sparito, widget che non ci sono più.

Utilizzi uno strumento che aggiorni queste lunghezze e faccia sempre prima un backup (lezione 8.1): il cerca e sostituisci non ha un cestino.

  • WP-CLI: prima controllare, poi eseguire. Nel terminale vada nella cartella del Suo WordPress ed esegua prima la prova (prima riga), solo dopo quella reale (seconda riga).
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid

Con --dry-run vede quante sostituzioni verrebbero effettuate per ogni tabella, senza modificare nulla. --skip-columns=guid lascia invariati gli identificativi fissi degli articoli (colonna guid); WordPress consiglia di non modificarli mai. Senza opzioni aggiuntive WP-CLI agisce solo sulle tabelle di WordPress. Se un plugin ha tabelle proprie con lo stesso prefisso, aggiunga --all-tables-with-prefix. Usi --all-tables solo se sa perché: interessa ogni tabella del database, anche quelle di un altro sito o di un'altra applicazione.

  • Un plugin di cerca e sostituisci che supporti i dati serializzati (ce ne sono diversi nella directory dei plugin di wordpress.org). Anche in questo caso usi prima la modalità di prova e poi rimuova di nuovo il plugin.

Non sostituisca mai qualcosa come example.com senza http:// o https:// davanti: in quel caso modificherebbe anche indirizzi email e altri testi. L'intera procedura, anche per chi non dispone di un terminale, è descritta nell'articolo della knowledge base sul cerca e sostituisci nel database di WordPress (vedere Approfondimenti).

In pratica: ecco 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 l'esercizio qui sotto oppure con gli strumenti per sviluppatori del Suo browser (scheda Network, casella "Conserva log").

Riepilogo

  • Scelga un indirizzo canonico e faccia arrivare le altre tre varianti a esso con un 301 (o 308), in un solo passaggio.
  • Lasci che un solo soggetto reindirizzi a https; altrimenti si crea un ciclo.
  • I contenuti misti sono una pagina https che carica elementi via http; la console del browser mostra quali.
  • I vecchi link nel database si sostituiscono con wp search-replace o con un plugin che gestisce i dati serializzati, mai con un semplice REPLACE in SQL.
  • Sempre prima un backup e prima una prova (--dry-run); lasci invariata la colonna guid e si limiti alle tabelle di WordPress.

Quiz

1. Quale reindirizzamento si usa per indirizzare in modo permanente http 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 di una pagina https viene sempre bloccato dal browser se caricato via 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. Il risultato è corretto se tutte e quattro arrivano allo stesso indirizzo in https, con al massimo un reindirizzamento per variante e solo codici permanenti (301 o 308). Successivamente 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.

Approfondimenti

Questi articoli descrivono i passaggi nei pannelli di WebOké; negli 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…