webForumDet fria alternativet

Perl fråga

Perl & Ruby

1 svar · 1 066 visningar · startad av haider

Medlem sedan jan. 2003956 inlägg
Frågan#1

Jag har en kodsnutt enligt följande:

$query = $ENV{'QUERY_STRING'};
($name, $value) = split(/==/, $query);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;

(En del av koden kan vara onödig, men jag har tagit koden från ett tidigare script.)

Scriptet läser av en URL och separerar datan därifrån.
Alltså:

http://www.domain.se/cgi-bin/script.pl?url==/mapp/index.html

Vad jag skulle vilja göra är att den ersätter sidan jag kommer in i med /mapp/index.html, en redirect av något slag. Allra helst ska URL:en visa https://www.domain.se/mapp/index.html när scriptet har körts.

Så jag antog att man ska skriva:

open (file, $FORM{url};
print <file>;
close (file);

Är det rätt?
Eller finns något enklare sätt?

Jag behöver skriva om länkarna till en sida som tidigare använt cgi script. Förhoppningen är att google så småningom indexerar bort cgi-delen och att det som kvarstår är den korrekta adressen.
Under tiden vill jag inte bryta länkarna utan jag vill att perl scriptet ska vidarebefordra trafiken till rätt plats.

Medlem sedan juni 20034 013 inlägg
#2

Kanske:

print "Status: 301 Moved Permanently\r\n";
print "Location: ", $FORM{url}, "\r\n\r\n";

Har dock inte skrivit något i Perl på väldigt länge...

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)