home | contact us
» php » PHP 301 Redirect Function with Headers Check and Javascript Fallback

BLOG CATEGORY: php search engine optimisation


If you are changing your URL structure, for example when moving to a search engine friendly URLs system, you need to be able to let Google and all the other search engines that the page has moved to the new URL. You really don’t want to display the same content on two URLs

So to achieve this we can do what is called a 301 redirect. This is a special redirect message which basically says “has permanently moved to”. By doing this, all of the search engine power, rank or whatever you want to call it will be directly transferred to the new URL.

However

Sometimes your script might spit out the headers earlier than you expect. If this happens then your site will fail completely to load with a fatal error along the lines of

warning: Cannot modify header information – headers already sent by (output started at .

We really don’t want this to happen, so what we can do is wrap the redirection in a headers_sent check and then fall back to a javascript redirect if headers have been sent for some reason. This is belt and braces logic.

Note script tags need spaces removing

function requrl_check($correct_url, $delay=3){
	$request_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
	if($request_url != $correct_url){
		if(!headers_sent()){ //going to assume that headers are not sent
		header("HTTP/1.1 301 Moved Permanently");
 			header('location: ' . $correct_url . ''); 
 			exit();
 		}else{
 			echo "<h3>The Page $request_url has Moved</h3>
 			<a href=$correct_url>$correct_url</a>";
 			echo '<h3>Now Refreshing in ' . $delay . ' Seconds</h3>Refreshing to:<br>' . $correct_url . '<s c r i p t type="text/JavaScript"><!--
	    setTimeout("location.href = \'' . $correct_url . '\';",' . ($delay * 1000) . ');
	    --> </s c r i p t>';
	    	exit();
		}
	}
}

tidy :-)

Further Reading:
www.stuntdubl.com
www.intertwingly.ne
webgasm.actiononline.biz
www.techcounter.com
www.chiropractichomepage.com
123howtoguide.com
searchblog.tamar.com


Click Here to Contact Us about PHP 301 Redirect Function with Headers Check and Javascript Fallback
 

Comments

1 Comment

One Response to “PHP 301 Redirect Function with Headers Check and Javascript Fallback”

  1. Sandeep says:

    Hello webmaster,

    To check the 301 redirect, how to use your code & where to input the website address?

    Regards,
    Sandeep pattanaik

Leave a Reply

rss icon