I have been working on a new website lately and I wanted to check whether the URL have been properly migrated. Some URLs have changed and others have been redirected to a new domain.
Additional to my .htaccess I wanted to create a small script to check whether my redirections were working or not. Here is the code:
$color_red = "\033[0;31m";
$color_green = "\033[0;32m";
$color_reset = "\033[0m";
// Sample array of addresses
$allowedAddresses = [
'http://example.com'
];
foreach($allowedAddresses as $item) {
$final_url = get_final_url($item);
$response_code = get_response_code($final_url);
$output_color = ($response_code == '200') ? $color_green : $color_red;
echo $output_color . " " . $response_code . " -- " . $item . " | " . $final_url . " " . $color_reset . "\n";
}
function get_final_url($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$response = curl_exec($ch);
$final_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
return $final_url;
}
function get_response_code($theURL) {
$headers = get_headers($theURL);
return substr($headers[0], 9, 3);
}
This PHP script is meant to run on the terminal via
$ php test-redirection-urls.php