technical

HTTP auf HTTPS weiterleiten

MetricSpot prüft, ob http:// per 301 auf https:// weiterleitet. Ohne hat deine Site zwei indexierbare Kopien und ein Downgrade-Fenster bei Erstbesuchern.

Was diese Prüfung macht

Setzt einen Request gegen http://deinedomain.de/ ab und sucht nach einer 301- oder 308-Antwort mit einem Location:-Header, der auf https:// zeigt. Die Prüfung fällt durch, wenn die HTTP-Version 200 zurückgibt (deine Site läuft parallel auf Klartext) oder gar nichts (Port 80 hört nicht).

Warum es wichtig ist

Auch wenn HTTPS verfügbar ist, ist die erste Anfrage eines neuen Besuchers fast immer unverschlüsselt. Er tippt deinedomain.de und der Browser versucht es zuerst per HTTP. Ohne Weiterleitung gehen drei Dinge gleichzeitig schief.

  • Zwei indexierbare Kopien. Google behandelt http://example.com/page und https://example.com/page als getrennte URLs. Ohne 301 können beide im Index auftauchen und Backlinks und Ranking-Signal aufspalten.
  • Downgrade-Fenster. Bei dieser ersten Klartext-Anfrage passieren sslstrip-artige Angriffe in feindlichen Netzen. Der Server sollte die Konversation abweisen und das Upgrade erzwingen.
  • Mixed-Content-Warnungen. Wenn die HTTP-Version tatsächlich rendert, wird jede Asset-URL auf der Seite, die nicht protokoll-relativ ist, über HTTP geladen — und moderne Browser blocken sie stillschweigend.

Die Weiterleitung ist die Brücke zu HSTS. Sobald HSTS gesetzt ist, gehen Browser bei Rückkehrbesuchen gar nicht mehr auf HTTP — die Weiterleitung muss aber weiterhin Erstbesucher und Crawler fangen.

Wie du es behebst

Höre auf Port 80 und gib für jeden Pfad 301 auf das HTTPS-Äquivalent zurück:

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 — automatisch. Caddy leitet HTTP→HTTPS standardmäßig um, sobald ein Site-Block einen TLS-fähigen Hostnamen hat.

Cloudflare — SSL/TLS → Edge Certificates → “Always Use HTTPS” → On.

Vercel / Netlify / Render / Dokku — HTTPS-Redirect ist für jedes Projekt mit eigener Domain standardmäßig aktiv.

Erst Zertifikat besorgen. Falls du noch keines hast, sind Let’s Encrypt + Certbot kostenlos und verlängern automatisch:

sudo certbot --nginx -d example.com -d www.example.com

Selbst auditierencurl -sI http://example.com/ sollte HTTP/1.1 301 Moved Permanently plus einen Location: https://...-Header drucken. Alles andere (200, 404, Connection Refused) lässt die Prüfung durchfallen.

Häufig gestellte Fragen

301 oder 308?

301 ist der Standard. 308 (RFC 7538) ist dieselbe Idee, garantiert aber, dass Methode und Body bei der Weiterleitung nicht umgeschrieben werden — wichtig für POST-Requests. Für eine typische Website mit GET-Traffic reicht 301, und jedes CDN / WAF setzt es so per Default.

Was ist mit der API-Subdomain — dieselbe Regel?

Ja. Jede Subdomain, die echten Traffic bedient, sollte HTTP genauso auf HTTPS weiterleiten. Wenn die API nur HTTPS akzeptiert (kein Fallback), kannst du den Server auch so konfigurieren, dass er Port 80 komplett mit connection: close ablehnt.

Soll ich gleichzeitig auf www oder ohne www weiterleiten?

Wenn du beide Entscheidungen in einer Weiterleitung bündelst, ja — kombiniere sie, damit Besucher nach einem Hop auf der kanonischen URL landen, nicht nach zwei. Siehe Weiterleitungsketten kurz halten für die Falle gestapelter Redirects.

Quellen

Zuletzt aktualisiert 2026-05-11