PHP sendet bei einer Weiterleitung per header("Location: ...") standardmäßig den HTTP-Statuscode 302. Das bedeutet: Die Umleitung ist temporär. Der Browser folgt dem Redirect, aber Suchmaschinen behalten die alte URL im Index.
Code-Beispiel: PHP 302 Redirect
<?php
// Temporäre Weiterleitung (Status 302)
header("Location: https://www.beispiel.de/neue-seite/");
exit;
?>
Das exit nach dem header()-Aufruf ist wichtig. Ohne exit führt PHP den restlichen Code der Seite weiter aus - der Browser bekommt die Weiterleitung zwar trotzdem, aber der Server arbeitet unnötig weiter.
Wann ist ein 302-Redirect sinnvoll?
Eine temporäre Weiterleitung macht Sinn, wenn die Umleitung absehbar wieder aufgehoben wird:
- Wartungsarbeiten - Du leitest Besucher vorübergehend auf eine Wartungsseite um, bis die eigentliche Seite wieder verfügbar ist.
- A/B-Tests - Du testest zwei Versionen einer Seite und leitest einen Teil der Besucher temporär auf die Testvariante.
- Saisonale Inhalte - Eine Produktseite wird im Sommer auf eine Sommeraktion umgeleitet und im Herbst wieder zurückgesetzt.
- Geo-Redirects - Besucher aus bestimmten Ländern werden auf eine lokalisierte Version umgeleitet.
302 vs. 301: Der entscheidende Unterschied
Bei einem 301 Redirect überträgt Google die Linkpower von der alten auf die neue URL. Bei einem 302 passiert das nicht - Google behält die alte URL im Index und wartet darauf, dass sie wieder erreichbar wird.
<?php
// PERMANENTE Weiterleitung (Status 301)
header("Location: https://www.beispiel.de/neue-seite/", true, 301);
exit;
?>
Der dritte Parameter 301 in der header()-Funktion erzwingt den permanenten Redirect. Ohne diese Angabe bleibt es bei 302.
302 vs. 307: Was ist der Unterschied?
HTTP kennt neben dem 302 auch den Statuscode 307 (Temporary Redirect). Der Unterschied: Bei einem 307 darf der Browser die HTTP-Methode nicht ändern. Wenn der ursprüngliche Request ein POST war, muss der Browser auch den Redirect als POST senden. Bei einem 302 dürfen Browser die Methode von POST auf GET ändern - und die meisten tun das auch.
Für normale Website-Weiterleitungen spielt der Unterschied keine Rolle. Relevant wird es bei APIs und Formularen, wo die HTTP-Methode erhalten bleiben muss.
Statuscode prüfen
Ob deine Weiterleitung den richtigen Statuscode sendet, prüfst du so:
- Browser DevTools - In Chrome oder Firefox mit F12 den Tab "Netzwerk" öffnen. Der Statuscode steht in der Spalte "Status".
- curl - Per Kommandozeile:
curl -I https://deine-domain.de/seite/zeigt die HTTP-Header inklusive Statuscode. - Online-Tools - Redirect-Checker wie httpstatus.io prüfen die gesamte Redirect-Kette.
Häufige Fragen
Schadet ein 302 dem SEO-Ranking?
Direkt nicht. Aber wenn du einen 302 verwendest wo ein 301 hingehört, überträgt Google die Linkpower nicht auf die neue URL. Die neue Seite rankt dann schlechter als nötig.
Kann ich einen 302-Redirect in der .htaccess setzen?
Ja. In der .htaccess mit dem Flag [R=302,L] oder einfach [R,L] (302 ist der Standard). Für permanente Umleitungen nutze [R=301,L].
Wie leite ich mit PHP auf eine andere Domain um?
Genauso wie bei einer internen Weiterleitung - einfach die vollständige URL mit Domain angeben:
<?php
header("Location: https://www.andere-domain.de/zielseite/", true, 302);
exit;
?>
Verwandte Artikel
- PHP Redirect 301 - Permanente Weiterleitung mit PHP
- .htaccess-Datei - Weiterleitungen, Passwortschutz und mehr
- HTTP zu HTTPS Weiterleitung - Die komplette Anleitung
Kommentararchiv 1
Leser kommentierten zu diesem Thema.