Redirection PERL

WRInaute impliqué
Hello tlm,

Voila un script de redirection PERL :

Code:
#!/usr/bin/perl

        @date = localtime(time); $date[4]++;
	$Time = "$date[4]/$date[3]/$date[5]";

	$Query_File = $ENV{QUERY_STRING};
	$Query_File =~ s/%([0-9A-F][0-9A-F])/pack("C",oct("0x$1"))/ge;
	$Query_File =~ tr/+/ /;
	($url) =  split(/\&/,$Query_File);

	if ($url =~ /=/) {
		($name, $url) = split(/=/, $url);
	}

        if ($url =~ /^(ht|f)tp:\/\//) {
                print "Location: $url\n\n";
	} else {
		&Error("Erreur, votre url doit commencée par http:// ou ftp://\n");
	}

sub Error {
	my($ErrorText) = @_;
	print "Content-type: text/html\n\n";	
	print "Erreur : ".$ErrorText;
	exit;
}

J'aimerai y ajouter un <META NAME="robots" CONTENT="noindex,nofollow">

Mais ne connaissant rien au PERL, je m'y perd :cry:

Quelqu'un aurait la solution ?
 
WRInaute discret
ton <meta> se mets dans le contenu de la page web. La redirection se fait à coup de 'Location:' dans le header qui est envoyé avant le contenu html.

Tu ne peut donc pas mettre de code html dedans.
 
WRInaute impliqué
Il n'y a aucun moyen ?

J'ai essayer de mettre du HTML avant le location mais pareil
 
WRInaute discret
Nitou a dit:
Il n'y a aucun moyen ?

J'ai essayer de mettre du HTML avant le location mais pareil

Ben si tu mets du texte avant le Location, celui ci sera considéré comme du contenu et plus comme un header http, donc cela ne sert a rien.

Utilises soit robots.txt pour dire ce que les robots peuvent suivre et indexer, soit le meta dans chacune des pages.
 
WRInaute impliqué
En fait, je ne peux pas mettre ça sur mes pages, je veux juste que les liens qui sont cité dans mes forums et autres passent par la redirection et qu'ils ne soient pas suivi par les robots, donc je ne peux pas faire un robots.txt.
 
WRInaute impliqué
A place de "Location:" ce n'est pas possible ce genre de syntaxe :

Code:
print "<script language='JavaScript'>window.location.href='$url';</script>\n\n";
:?:
 
WRInaute impliqué
Bon ben c'est bon, j'ai réussi :D

Code:
#!/usr/bin/perl
        
        @date = localtime(time); $date[4]++;
	$Time = "$date[4]/$date[3]/$date[5]";

	$Query_File = $ENV{QUERY_STRING};
	$Query_File =~ s/%([0-9A-F][0-9A-F])/pack("C",oct("0x$1"))/ge;
	$Query_File =~ tr/+/ /;
	($url) =  split(/\&/,$Query_File);

	if ($url =~ /=/) {
		($name, $url) = split(/=/, $url);
	}

        if ($url =~ /^(ht|f)tp:\/\//) {
                print "Content-type: text/html\n\n";
                print "<html>\n<head>\n<META NAME='robots' CONTENT='noindex,nofollow'>\n</head>\n<body>\n<script language='JavaScript'>window.location.href='$url';</script>\n</body>\n</html>\n";
	} else {
		&Error("Erreur, votre URL doit commencée par http:// ou ftp://\n");
	}

sub Error {
	my($ErrorText) = @_;
	print "Content-type: text/html\n\n";	
	print "Erreur : ".$ErrorText;
	exit;
}
 
Discussions similaires
Haut