technical
Reindirizza HTTP a HTTPS
MetricSpot verifica che le richieste http:// vengano reindirizzate con un 301 a https://. Senza, il tuo sito ha due copie indicizzabili — e una finestra di downgrade per ogni primo visitatore.
Cosa controlla questo check
Invia una richiesta a http://tuodominio.com/ e cerca una risposta 301 o 308 con un header Location: che punta a https://. Il check fallisce se la versione HTTP ritorna 200 (il tuo sito è servito in doppio su testo in chiaro) o non ritorna nulla (la porta HTTP 80 non è in ascolto).
Perché è importante
Anche con HTTPS disponibile, la prima richiesta di un nuovo visitatore è quasi sempre in chiaro. Digita tuodominio.com e il browser prova prima HTTP. Senza un redirect, tre cose vanno storte contemporaneamente.
- Due copie indicizzabili. Google tratta
http://example.com/pageehttps://example.com/pagecome URL separati. Senza un 301 possono comparire entrambe nell’indice, dividendo backlink e segnale di ranking. - Finestra di downgrade. Quella prima richiesta in chiaro è il momento in cui avvengono gli attacchi in stile sslstrip su reti ostili. Il server deve rifiutare la conversazione e forzare l’upgrade.
- Avvisi di mixed-content. Se la versione HTTP renderizza davvero, ogni URL di asset sulla pagina che non è protocol-relative viene scaricato via HTTP — e i browser moderni li bloccano in silenzio.
Il redirect è il ponte verso HSTS. Una volta attivato HSTS, i browser smettono di colpire HTTP del tutto alle visite di ritorno — ma il redirect deve comunque intercettare i primi visitatori e i crawler.
Come risolvere
Resta in ascolto sulla porta 80 e ritorna 301 all’equivalente HTTPS per ogni path:
nginx:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
Apache (.htaccess):
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Caddy — automatico. Caddy reindirizza HTTP→HTTPS di default una volta che un blocco di sito ha un hostname idoneo a TLS.
Cloudflare — SSL/TLS → Edge Certificates → “Always Use HTTPS” → On.
Vercel / Netlify / Render / Dokku — il redirect HTTPS è attivo di default per qualsiasi progetto con dominio custom.
Procurati prima un certificato. Se non ne hai già uno, Let’s Encrypt + Certbot è gratuito e si rinnova automaticamente:
sudo certbot --nginx -d example.com -d www.example.com
Verifica tu stesso — curl -sI http://example.com/ deve stampare HTTP/1.1 301 Moved Permanently e un header Location: https://.... Qualunque altra cosa (200, 404, connection refused) fa fallire il check.
Domande frequenti
301 o 308?
301 è lo standard. 308 (RFC 7538) è la stessa idea ma garantisce che metodo e body non vengano riscritti sul redirect, il che conta per le richieste POST. Per un sito tipico con traffico GET, 301 va bene ed è quello che usano di default tutti i CDN / WAF.
E il sottodominio API — stessa regola?
Sì. Qualsiasi sottodominio che serve traffico reale deve reindirizzare HTTP a HTTPS allo stesso modo. Se l’API è del tipo che accetta solo HTTPS (nessun fallback) puoi anche configurare il server per rifiutare del tutto la porta 80 con connection: close.
Devo reindirizzare a www o non-www allo stesso tempo?
Se stai unendo entrambe le decisioni in un solo redirect, sì — combinale così i visitatori atterrano sull’URL canonico dopo un hop, non due. Vedi mantieni corte le catene di redirect per la trappola di impilare redirect.
Fonti
Ultimo aggiornamento 2026-05-11