PHP: Making Page Redirects Permanent

PHP: Making Page Redirects Permanent

I was looking for a good way of redirecting a page I had to move and found this from Dylan at WeDefy dot com. Dylan said that HTTP status codes changes the way browsers (and robots) handle redirects, so when using header(Location:) it’s a good idea to set the status code.

<?php
// 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);
?>

I went with the 301 option, but Dylan goes on to say: Browsers typically re-request a 307 page every time, cache a 302 page for the session, and cache a 301 page for longer, or even indefinitely. Search engines typically transfer “page rank” to the new location for 301 redirects, but not for 302, 303 or 307.

If the status code is not specified, header(‘Location:’) defaults to 302.