Seite 1 von 1

Fragezeichen in der URL wird als Teil des Dateinamens interp

Verfasst: 18.09.2005, 13:48
von Sleepless
Hallo, ich habe folgende Frage:

Eine URL in der Form

https://www.domain.de/cgi-bin/outbound. ... www.xyz.de

funktioniert bei mir nicht, weil Apache (oder wer immer das macht) scheinbar das Fragezeichen nicht als Trennzeichen erkennt, sondern als Teil des Dateinamens und daher die Datei mit dem Skript erst gar nicht findet. Gibt es dazu irgendwelche Einstellungen, die das Fragezeichen als Trennzeichen deklarieren?

Ich habe einen virtuellen Server bei vlinux.de mit Webmin. Das Perl-Script, das ausgeführt werden soll, sieht so aus:

#!/usr/bin/perl
$url=$ENV{'QUERY_STRING'};
if ($url) {print "Location: $url\n\n";}
else { print "Content-type: text/html\n\n"; print "<center>Kein Ziel url<a href=https://www.abc.de/>Domain ABC</a></center>";}
exit;

Andere Scripts ohne Parameterübergabe nach Fragezeichen in der URL funktionieren einwandfrei.

Bin für jede Hilfe dankbar!

Verfasst:
von

Fragezeichen in der URL wird als Teil des Dateinamens interp

Verfasst: 18.09.2005, 19:45
von bsnoop
$ENV{'QUERY_STRING'} ist in deinem Fall nicht die URL sondern

Code: Alles auswählen

url=http&#58;//www.xyz.de
Da musste die URL noch extrahieren. Versuche es mal z.B. so:

Code: Alles auswählen

use CGI qw&#40;&#58;standard&#41;;

$url = param&#40;'url'&#41;;
if &#40;$url&#41; &#123;print "Location&#58; $url\n\n";&#125;
else &#123; print "Content-type&#58; text/html\n\n"; print "<center>Kein Ziel url<a href=http&#58;//www.abc.de/>Domain ABC</a></center>";&#125;
exit; 


oder lass beim Aufruf des Skriptes das url= weg -> https://www.domain.de/cgi-bin/outbound. ... www.xyz.de , dann sollte deine Variante auch funzen.

Verfasst: 19.09.2005, 16:44
von Sleepless
Vielen Dank, jetzt klappts!