Eine simple Variante für permanent oder temporäre Weiterleitungen realisiert man über den $http_response_code Parameter im header() .

// 301 Moved Permanently
header("Location: /foo.php",TRUE,301);

// 302 Found
header("Location: /foo.php",TRUE,302);
header("Location: /foo.php");

// 303 See Other
header("Location: /foo.php",TRUE,303);

// 307 Temporary Redirect
header("Location: /foo.php",TRUE,307);

Der HTTP-Statuscode ändert die Art und Weise, wie Browser und Robots mit Weiterleitungen umgehen.

Wenn Sie also header (Location 🙂 verwenden, empfiehlt es sich, den Statuscode festzulegen.

Browser fordern eine 307-Seite typischerweise jedes Mal erneut an, speichern eine 302-Seite für die Sitzung zwischen und cachen eine 301-Seite länger oder sogar unbegrenzt.

Suchmaschinen übertragen typischerweise das Seitenranking (page rank) an den neuen Ort der 301 Weiterleitungen, jedoch nicht für 302, 303 oder 307 Weiterleitungen.

Hinweis:
Wenn der Statuscode nicht angegeben ist, wird standardmäßig die Kopfzeile (‘Location:’) auf 302 gesetzt.

Beispiel:
Status:

301 Moved Permanently

Client request

GET /index.php HTTP/1.1
Host: www.example.org

Server request

HTTP/1.1 301 Moved Permanently
Location: http://www.example.org/index.asp