Página 1 de 1

Redireccionar a página principal

NotaPublicado: 2006-02-09 04:13 @217
por rafa
Hola, un saludo para todos, tengo un pequeño problemilla, es el siguiente :

Tengo una página principal en perl donde hay varios enlaces, en esta es donde controlo a los usuarios que entran, pero hay algunos que entran directamente a las paginas de los enlaces sin pasara por la principal, me gustaria como podria obligar a los usuarios a entrar a las distintas paginas desde la pagina principal.

Un saludo y gracias

NotaPublicado: 2006-02-09 10:14 @468
por kidd
Hola:

Se me ocurren dos maneras.

1. Checa el referrer para verificar que vienen de la página principal, esto lo puedes lograr usando las variables de entorno.

2. Implementando el uso de sesiones, de esa manera rediriges a los usuarios a la página principal para que inicien una sesión en caso de que no tengan una ya inicializada. Esto se puede lograr de manera sencilla usando el módulo CGI::Session.


SALUDOS

PAGINA PRINCIPAL

NotaPublicado: 2006-02-13 08:38 @401
por rafa
Gracias, lo mirare como me dices.
Un Saludo

pagina principal

NotaPublicado: 2006-02-13 09:26 @435
por macgregor
Una opcion es añadir javascript a todas tus paginas comprovando que el "url.value" de la pagina anterior es igual a la url de nuestra pagina principal (http://www.mipagina.com/index.html).
si no se cumple pon un popup avisando y no dejes que hagan nada.

Otra opcion es el uso de sesiones. Si tienes usuarios definidos en una base de datos (o algun archivo de texto) y quieres que una vez se identifiquen puedan navegar libremente por tu web esta es la mejor opcion.
Puedes mirarte el modulo que te ha dicho kidd.

Yo me he visto obligado a hacer algo parecido en una web y lo resolvi utilizando sesiones. Los usuarios se validaban en una base de datos y mediante cookies con javascript guardaba el identificador de sesion en el pc del usuario.
Mirate este mensaje, aqui pongo como lo hice, con el codigo mas o menos claro :D

http://perlenespanol.com/foro/viewtopic.php?t=748

Un saludo.

PAGINA PRINCIPAL

NotaPublicado: 2006-02-21 03:40 @194
por rafa
Hola, tengo este script pero no me funciona, me da error en la pagina :


my @referers = ('www.tudominio.com.ar', '*.tudominio.com.ar', 'tudiminio.com.ar');
&check_url;

sub check_url {

my $check_referer = 0;

if ($ENV{'HTTP_REFERER'}) {
foreach my $referer (@referers) {
if ($ENV{'HTTP_REFERER'} =~ m|https?://([^/]*)$referer|i) {
$check_referer = 1;
last;
}
}
}
else {
$check_referer = 1;
}

if ($check_referer != 1) { &error('verificar','host') }
}

no detecto donde puede estar el error.
Gracias anticipadas por tu amabilidad.
Un Saludo

NotaPublicado: 2006-02-21 09:53 @453
por kidd
Umm, podría ser algo así:


Código: Seleccionar todo
my @referers = ('dominio.com.ar');

check_url();


sub check_url {

my $check_referer = 0;

my $page_referer = $ENV{'HTTP_REFERER'};

    if (defined($page_referer)) {
        for my $referer (@referers) {
            if ($page_referer =~ m|^http(?:s)?\://(?:[^/]*)$referer|i) {
                $check_referer = 1;
                last;
            }
        }
    }
    else {
        $check_referer = 1;
    }


    if ($check_referer != 1) {
        error('verificar','host')
    }


}



SALUDOS

Re: Redireccionar a página principal

NotaPublicado: 2006-02-21 14:06 @629
por explorer
Una solución drástica sería hacer un filtrado a nivel del servidor web (en caso de ser un servidor Apache) utilizando el utilísimo módulo mod_rewrite:
Código: Seleccionar todo
RewriteEngine On
RewriteCond %{HTTP_REFERER}     !dominio\.com\.ar
RewriteCond %{REQUEST_FILENAME} !index\.html
RewriteRule ^/                  http://dominio.com.ar/index.html [L,R]