PHP Tutorials - Herong's Tutorial Examples
Dr. Herong Yang, Version 3.00

Location: - Forcing the Browser to Redirect to Another URL

This section provides a tutorial example on how to insert the 'Location:' header line in a HTTP response to tell the browser to do a URL redirect - Send a HTTP request to the specified ULR immediately.

The PHP manual document says we can use header("Location: ...") to tell the browser to make a new HTTP request to a given URL. This is called "redirect". Here is my testing script, HttpRedirect.php:

<?php #HttpRedirect.php
# Copyright (c) 2005 by Dr. Herong Yang, http://www.herongyang.com/
#
   $text = "<html><body>Moved!</body></html>";
   print($text);
   header("Content-Type: text/xml;charset=utf-8");
   header("Content-Length: ".strlen($text));
   header("Location: http://www.herongyang.com/");
?>

The output:

HTTP/1.1 302 Object Moved
Server: Microsoft-IIS/5.1
Date: Sat, 19 Nov 2005 03:46:58 GMT
Content-Type: text/html
X-Powered-By: PHP/5.0.4
Content-Length: 32
Location: http://www.herongyang.com/

<head><title>Document Moved</title></head>
<body><h1>Object Moved</h1>This document may be
 found <a HREF="http://www.herongyang.com/">here</a></body>

I am a little bit surprised by the output:

  • My entity body has been totally replaced by a short HTML document generated by the PHP engine. This is not mentioned in the PHP documentation at all!
  • The status line is changed to "HTTP/1.1 302 Object Moved".
  • The "Content-Length" still had my value, the number of bytes of my original HTML message, not the replacing message.

Last update: 2005.

Sections in This Chapter

What Is an HTTP Response?

HTTP Response Header Lines

header() - Inserting a Raw Header Lines

HttpRequestGet.php - Viewing Header Lines

Response Header Lines of Static Files

HttpHeaderLines.php - Examples of Inserting Header Lines

Location: - Forcing the Browser to Redirect to Another URL

Content-Type: - Generating Non-HTML Response Body

Content-Disposition: - Sending Files for Downloading

Dr. Herong Yang, updated in 2009
Location: - Forcing the Browser to Redirect to Another URL