pr0cz pr0cz - 1 month ago 10
PHP Question

Location header with relative path not re-directing

My header tag doesn't redirect correctly and I don't find out why. This is my line:

header('Location:../destination.php');


The file is located at:
www.example.com/one/two/example.php


Now, if I enter the page and get instantly redirected (as it should) it loads
www.example.com/one/two/example/destination.php
instead of
www.example.com/one/destination.php
.

It just adds the destination.php to the current path. Very strange.

Answer

Try this:

header("Location: //www.example.com/one/destination.php");

I used a scheme-less URI because the question doesn't specify whether you're using http:// or https://.

Although relative paths are acceptable, the spec calls for the use of absolute URIs. I would rely on that for consistency.

14.30 Location

The Location response-header field is used to redirect the recipient to a location other than the Request-URI for completion of the request or identification of a new resource.

The field value consists of a single absolute URI.

   Location       = "Location" ":" absoluteURI
Comments