webForumDet fria alternativet

Perl fråga

1 svar · 1 064 visningar · startad av haider

haiderMedlem sedan jan. 2003988 inlägg
#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.

tydalMedlem sedan juni 20033 788 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...

Genererad på 500 ms · cache AV · v20260730165559-full.f96bc7eb