• Publicidad

Obtener la última URL después de un error 404

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Obtener la última URL después de un error 404

Notapor netsoul » 2009-03-16 23:17 @012

Tengo un pequeño problema, creo que es muy básico, pero me gustaría saber si se podría resolverse. Dado un pequeño código para hacer Request a una página.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use LWP::UserAgent;
use HTTP::Request;

$b = LWP::UserAgent->new() or die "No se puede inicializar el modulo.";
$b->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');

$host = "http://www.[sitio].com";
$respuesta = $b->request(HTTP::Request->new(GET=>$host));
$contenido = $respuesta->content;
print $contenido;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4



Cuando normalmente se visita una página usando un navegador (Firefox) toda información del código HTML es almacenada en dicho navegador que podría ser vista revisando el código fuente. Sin embargo, cuando ocurre un error 404 del sitio (normalmente cuando la dirección no existe o se digita algo equivocado) poca información se almacena, como por ejemplo: NOT FOUND Error 404, o algo similar.

Dada esa información es almacenada en la variable $contenido del código de arriba. Pero sin embargo, existe un dato que no sabría cómo obtenerlo (y que no está dado en la variable $contenido): sería la última URL que un navegador retorna al producirse dicho error.

Por ejemplo:
  1. URL escrito: http://www.[sitio].com/paginaexiste.html
    Resultado: Normal.
    URL Retornado: http://www.[sitio].com/paginaexiste.html
  2. URL escrito: http://www.[sitio].com/paginaNOexiste.html
    Resultado: Error 404 Not Found
    URL Retornado: http://www.[sitio].com/cualquierCosa.html
Espero que se haya entendido.

Gracias.
netsoul
Perlero nuevo
Perlero nuevo
 
Mensajes: 150
Registrado: 2008-05-04 01:11 @091

Publicidad

Notapor explorer » 2009-03-17 03:52 @203

Quien devuelve el 404 es el servidor web. Y ese error no deriva a ningún otro URL. Con un error 301 o 302, el servidor sí que redirige a otro sitio.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor danimera » 2009-03-17 08:01 @376

Hay que obtenerlo desde el mismo servidor... yo lo hago editando las páginas de error con la línea
<!--#echo var="HTTP_REFERER" -->
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Notapor netsoul » 2009-03-30 19:42 @862

Gracias. Voy aprendiendo poco a poco.
netsoul
Perlero nuevo
Perlero nuevo
 
Mensajes: 150
Registrado: 2008-05-04 01:11 @091


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 9 invitados

cron