PHP Redirect 302 - Temporäre Weiterleitung

PHP Redirect 302 - Temporäre Weiterleitung

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:

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.

Häufiger Fehler: Viele verwenden versehentlich einen 302 statt eines 301, weil PHP ohne explizite Angabe immer 302 sendet. Wenn eine Seite dauerhaft umgezogen ist, muss der Statuscode 301 explizit gesetzt werden.
<?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:

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

Kommentararchiv 1

Leser kommentierten zu diesem Thema.