Perl fråga

Perl & Ruby

1 svar · 1 081 visningar · startad av haider

Medlem sedan jan. 2003956 inlägg
Trådstart#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...

293 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)