Este sitio web utiliza cookies para realizar análisis y mediciones de tus visitas. [ Acepto ] [ Más información aquí ].

Cómo detectar una redirección 301 en PHP

Para detectar una redirección 301 desde un dominio hacia otro, utiliza este código. En este caso, el sitio web es www.obrasocialcajamadrid.es, el cual redirige a www.fundacionmontemadrid.es. Sustitúyelo por la URL que necesites:

$url = "www.obrasocialcajamadrid.es";

function detect_redirect ($url) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_URL, $url);

$out = curl_exec($ch);

$out = str_replace("\r", "", $out);

$headers_end = strpos($out, "\n\n");

if( $headers_end !== false ) {

$out = substr($out, 0, $headers_end);

}

$headers = explode("\n", $out);

foreach($headers as $header) {

if( substr($header, 0, 10) == "Location: " ) {

$target = substr($header, 10);

$pieces = explode("?", $target);

}

}

return $pieces[0];

}

$result = detect_redirect($url);

echo $result;

Añadir comentario

Comentarios

2015-05-23 - Eduard

Buenos días Daniel, Me interesaria poder implementar tu codigo en mi web, ya que actualmente hemos adquirido otra empresa y queremos detectar las redireccions 301 que vienen de esa web para poder mostrar un banner, pero no me acaba de funcionar. Lo implemento, pero no me detecta la redireccion 301 Cres que puedes ayudarme? Gracias!

2015-05-23 - Daniel Piñero

Hola Eduard. Creo que este código no es el indicado para lo que me comentas. Te recomendaría añadir un parámetro en la URL mediante tu código .htaccess (u otro) que genere las redirecciones, y recuperarlo mediante $_GET en el nuevo sitio web. A partir de ahí, lo recuperas mediante Analytics o inserción en base de datos MySQL.