technical
Redirigir HTTP a HTTPS
MetricSpot comprova si les peticions http:// es redirigeixen amb 301 a https://. Sense això, el teu lloc té dues còpies indexables i una finestra de degradació per a cada visitant nou.
Què comprova aquesta auditoria
Fa una petició a http://elteudomini.com/ i busca una resposta 301 o 308 amb una capçalera Location: apuntant a https://. La comprovació falla si la versió HTTP retorna 200 (el teu lloc es serveix en dual sobre text pla) o no retorna res (el port 80 d’HTTP no escolta).
Per què importa
Fins i tot amb HTTPS disponible, la primera petició d’un visitant nou és gairebé sempre en text pla. Escriu elteudomini.com i el navegador prova HTTP primer. Sense una redirecció, fallen tres coses alhora:
- Dues còpies indexables. Google tracta
http://example.com/pageihttps://example.com/pagecom a URL separades. Sense un 301 poden aparèixer totes dues a l’índex, dividint backlinks i senyal de posicionament. - Finestra de degradació. Aquesta primera petició en text pla és quan passen els atacs estil sslstrip en xarxes hostils. El servidor hauria de rebutjar la conversa i forçar la pujada a HTTPS.
- Avisos de contingut mixt. Si la versió HTTP es renderitza, cada URL d’assets a la pàgina que no sigui relativa al protocol es carrega per HTTP, i els navegadors moderns les bloquegen silenciosament.
La redirecció és el pont cap a HSTS. Un cop HSTS està configurat, els navegadors deixen de tocar HTTP en visites de tornada, però la redirecció encara ha de capturar els primers visitants i els rastrejadors.
Com solucionar-ho
Escolta al port 80 i retorna 301 cap a l’equivalent HTTPS per a cada ruta:
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, automàtic. Caddy redirigeix HTTP→HTTPS per defecte un cop un bloc de site té un hostname elegible per a TLS.
Cloudflare, SSL/TLS → Edge Certificates → “Always Use HTTPS” → On.
Vercel / Netlify / Render / Dokku, la redirecció HTTPS està activada per defecte per a qualsevol projecte amb un domini personalitzat.
Aconsegueix primer un certificat. Si encara no en tens, Let’s Encrypt + Certbot és gratis i es renova automàticament:
sudo certbot --nginx -d example.com -d www.example.com
Audita el teu cas, curl -sI http://example.com/ ha d’imprimir HTTP/1.1 301 Moved Permanently i una capçalera Location: https://.... Qualsevol altra cosa (200, 404, connexió rebutjada) falla la comprovació.
Preguntes freqüents
301 o 308?
301 és l’estàndard. 308 (RFC 7538) és la mateixa idea però garanteix que el mètode i el cos no es reescriuen en la redirecció, cosa que importa per a peticions POST. Per a un lloc web típic amb tràfic GET, 301 està bé i és el que fa servir tot CDN / WAF per defecte.
I el subdomini de l’API, la mateixa regla?
Sí. Qualsevol subdomini que serveixi tràfic real hauria de redirigir HTTP a HTTPS de la mateixa manera. Si l’API és del tipus que només accepta HTTPS (sense fallback) també pots configurar el servidor perquè rebutgi del tot el port 80 amb connection: close.
Hauria de redirigir a www o no-www alhora?
Si col·lapses totes dues decisions en una redirecció, sí, combina-les perquè els visitants arribin a la URL canònica després d’un sol salt, no dos. Vegeu mantenir les cadenes de redireccions curtes per al parany d’apilar redireccions.
Fonts
Última actualització 2026-05-11