memrat
memrat

Reputation: 167

Header redirect not working correctly with nginx?

I am trying to use a php script that redirects visitors based on certain criteria. I use the script succesfully on an apache server however, I am experimenting with nginx and php-fpm and the same script doesn't seem to be working as it should.

header("Location: $url");
exit();

The strange thing is it appears to be appending the URL I am trying to redirect to to the original URL so the URL it tries to forward to looks like:

originaldomain.com/redirectdomain.com.

Has anybody ever come across this before where it as appending the redirect domain to the original URL instead of redirecting straight to it?

Please let me know if you need any further information to help.

Upvotes: 0

Views: 2354

Answers (3)

Lakshmikandan
Lakshmikandan

Reputation: 4627

If the above answers are not yet fixed header redirect, you need to check in your php.ini file output_buffering on or off or set limit.

output_buffering = On

Upvotes: 1

Joran Den Houting
Joran Den Houting

Reputation: 3163

$url has to begin with http:// or https://

if (strpos($url, 'http') === 0 ) {
    $newurl = $url;
} else {
    $newurl = "http://" . $url;
}

Then just use $newurl in you header request :)

Upvotes: 0

Ben Fortune
Ben Fortune

Reputation: 32127

You need to make sure the URL has http:// at the beginning of it, otherwise it thinks it's going to a path on your domain, and not a redirect to an actual site.

Upvotes: 1

Related Questions