I am trying to code a redirect check to see if the URL is search engine friendly. He should check if the URL is redirected or not, and if it is redirected, he must indicate whether he is SEO friendly (status code 301) or not (302/304).
Here's something similar I found: http://www.webconfs.com/redirect-check.php
It should also be able to track multiple redirects (e.g. A to B to C) and tell me that A is redirecting to C.
This is what I got so far, but it does not work completely correctly (example: when entering on www.example.com it does not find a redirect to www.example.com/page1)
<?php // You can edit the messages of the respective code over here $httpcode = array(); $httpcode["200"] = "Ok"; $httpcode["201"] = "Created"; $httpcode["302"] = "Found"; $httpcode["301"] = "Moved Permanently"; $httpcode["304"] = "Not Modified"; $httpcode["400"] = "Bad Request"; if(count($_POST)>0) { $url = $_POST["url"]; $curlurl = "http://".$url."/"; $ch = curl_init(); // Set URL to download curl_setopt($ch, CURLOPT_URL, $curlurl); // User agent curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); // Include header in result? (0 = yes, 1 = no) curl_setopt($ch, CURLOPT_HEADER, 0); // Should cURL return or print out the data? (true = return, false = print) curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Timeout in seconds curl_setopt($ch, CURLOPT_TIMEOUT, 15); // Download the given URL, and return output $output = curl_exec($ch); $curlinfo = curl_getinfo($ch); if(($curlinfo["http_code"]=="301") || ($curlinfo["http_code"]=="302")) { $ch = curl_init(); // Set URL to download curl_setopt($ch, CURLOPT_URL, $curlurl); // User agent curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); // Include header in result? (0 = yes, 1 = no) curl_setopt($ch, CURLOPT_HEADER, 0); // Should cURL return or print out the data? (true = return, false = print) curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Timeout in seconds curl_setopt($ch, CURLOPT_TIMEOUT, 15); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Download the given URL, and return output $output = curl_exec($ch); $curlinfo = curl_getinfo($ch); echo $url." is redirected to ".$curlinfo["url"]; } else { echo $url." is not getting redirected"; } // Close the cURL resource, and free system resources curl_close($ch); } ?> <form action="" method="post"> http://<input type="text" name="url" size="30" />/ <b>eg www.google.com</b><br/> <input type="submit" value="Submit" /> </form>