[perl] Redireccionando por pais

Bolo Lacertus lacertus@servidor.unam.mx
Mon, 21 Aug 2000 11:31:38 -0500


Saludos!!!

Suena bastante halagado para el usuario la personalización que propones,
aunque de hecho lo estás haciendo por el camino dificil.

Primero respondamos puntualmente a tu pregunta.

La página que tu CGI debe responder para que el navegador sea enviado a
otra página (lo que se conoce como un "redirect") debe ser como sigue
(notese que incluyo en encabezado de mime type que todo CGI debe
proporcionar e incluso la instrucción perl de "print").

print<<"HTMLCONS";
Content-type: text/html


<HEAD><TITLE>Volo Lacerta Cunae</TITLE>
<meta http-equiv="refresh" content="0;
 URL=http://proteo.dgsca.unam.mx/cgi-bin/lacertus/hola">
</HEAD>
<BODY BACKGROUND="/lacertus/media/blf1.jpg"></BODY>
HTMLCONS

En este caso, la página generada te envía a
http://proteo.dgsca.unam.mx/cgi-bin/lacertus/hola 0 segundos después de
presentarse (el 0 puede reemplazarse por la cantidad de segundos que
desees).
Funciona hasta donde he visto tanto para Explorer como para Netscape,
sin embargo es una buena idea el poner la liga en el contenido de la
página para aquellos navegadores que no lo soporten. Reemplazando el UTR
puedes llamar a la página que determine la dirección del que solicita.

Diego León wrote:
> Necesito que el script redireccione (mande al explorador a abrir) a la
> página Uruguay.htm en este caso, o a la página '$pais.htm', en forma
> genérica.

Ok, ahora, lo que considero sería la solución mas sencilla:
Como estarás usando CGIs (perl), de hecho puedes determinar en tiempo de
corrida el 100% del html a desplegar, de modo que no necesitas un
redirect (suponiendo que tienes acceso a todos los archivos de las
páginas desde tu CGI). Simplemente tienes que leerlas y entregarlas como
resultado de tu CGI. Por ejemplo:

#si tenemos $pais con el nombre del pais y las páginas se llaman
$pais.html y se
#encuentran en /usr/local/apache/paginas
print "Content-type: text/html\n\n";
open(PAP,"</usr/local/apache/paginas/$pais.html");
while(<PAP>)
{
  print;
}

Como puedes apreciar las páginas no requieren de un redirect, aunque es
posible que tengan que usar ligas absolutas ya que aparecerán bajo el
directorio cgi-bin (o como este configurado en tu sistema) y no
necesariamente en donde se encuentran los documentos HTML.

Esperando que estos tips te sean de utilidad

P.D. Determinar el país de donde viene un usuario no siempre es tan
sencillo, ya que a menudo sus máquinas no tienen registro DNS, para ver
unprograma que trata de "adivinar" de donde viene una consulta en base a
otras direcciónes que si logró reconocer puedes ver un programa que hice
hace unos años y que está en:
http://proteo.dgsca.unam.mx/lacertus/programas/resolvedor_direcciones/
-- 
Bolo Lacertus: lacertus@servidor.dgsca.unam.mx		==~\___\
http://proteo.dgsca.unam.mx/cgi-bin/lacertus/hola	 =__vvvv
--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : unsubscribe perl