Cheatah: Apache verändert Links zu externen Seiten

Beitrag lesen

Hi,

#!c:/apacheserver/perl/bin/perl.exe;

das Semikolon darf dort nicht stehen. Zudem wäre deutlich besser:

#!c:/apacheserver/perl/bin/perl.exe -w
use strict;

Mit anschließender Korrektur der Fehler, die Dir gemeldet werden.

Übrigens hat Perl _nichts_ mit Apache zu tun, ist ergo dort eher sinnfrei installiert. Wenn Du es nach C:\usr installierst, kannst Du übrigens exakt wie bei Unix üblich "#!/usr/bin/perl -w" angeben.

print "<BODY bgcolor=%22#ffffff%22>";

Was sollen die %22 da drin? Das ist eine URL-Kodierung, Du hast hier aber keine URLs.

$pfad="gb.txt";

my $pfad = 'gb.txt'; # Nur als Hinweis...

open(DATEI, "$pfad");

perldoc perlfaq4
What's wrong with always quoting "$vars"?

open(DATEI, $pfad) or die "Kann $pfad nicht oeffnen: $!";

Übrigens verlässt Du Dich hier darauf, dass das aktuelle Verzeichnis richtig ist - dieser Begriff ist im CGI-Kontext jedoch undefiniert; evtl. wird auch C:\gb.txt gesucht. Gib einen kompletten Pfad an.

Der Link zur Homepage wird auch korrekt in der erzeugeten datei im quelltext angezeigt,

Tatsächlich? Wie lautet er?

jedoch scheint der apacheserver ihn zu verändern,

Apache verändert nichts.

so wird aus www.test.de  http://localhost/cgi-bin/www.test.de,

Das ist vollkommen korrekt. Aus "script.cgi" muss an der Stelle ebenfalls "http://localhost/cgi-bin/script.cgi" werden - alles andere sollte Dir zu denken geben.

Meine Frage, wie muss ich apache konfigurieren, damit es Links zu externen seiten zulässt?

Merke Dir einfach folgendes:

_   _           _                                          _           _
   | | | | ___  ___| |_ _ __   __ _ _ __ ___   ___ _ __    ___(_)_ __   __| |
   | |_| |/ _ / __| __| '_ \ / _| '\_ _ \ / _ \ '_ \  / __| | '_ \ / _` |
   |  _  | (_) \_ \ |_| | | | (_| | | | | | |  __/ | | | \_ \ | | | | (_| |
   |_| |_|\__/|___/\_|_| |_|\_,_|_| |_| |_|\__|_| |_| |___/_|_| |_|\__,_|

_        _                   _   _ ____  _         _
          __/\| | _____(_)_ __   _____/\_ | | | |  _ | |    ___| |
          \    / |/ / _ \ | '_ \ / _ \    / | | | | |_) | |   / __| |
          /_  _\   <  __/ | | | |  __/_  _\ | |_| |  _ <| |___\_ \|
            / |_|\\__|_|_| |_|\__| /    \__/|_| \\____|___(_)

Für einen Link brauchst Du aber eine URL. Diese ist entweder relativ zur aktuellen Location, oder aber sie beginnt mit dem Protokoll.

Cheatah