Dominik: Link über ein CGI

Hello

Ich möchte für meine Homepage ein einfaches "Linksystem" konstruieren. Ich stelle mir das etwa so vor: Mit http://www.mein-server.com/cgi-local/index.cgi?feedback würde das CGI eine Verbindung nach http://www.mein-server.com/feedback.html machen. Die Namen nach dem ? und die Adressen sollte ich irgendwo im Script oder einer Datei speichern.

Wie mache ich so ein Script, kennt jemand so ein script?

Gruss Domi

  1. Hi,

    Ich möchte für meine Homepage ein einfaches "Linksystem" konstruieren. Ich stelle mir das etwa so vor: Mit http://www.mein-server.com/cgi-local/index.cgi?feedback würde das CGI eine Verbindung nach http://www.mein-server.com/feedback.html machen. Die Namen nach dem ? und die Adressen sollte ich irgendwo im Script oder einer Datei speichern.

    Wie mache ich so ein Script, kennt jemand so ein script?

    erst mal als Basis: Hast Du bereits Erfahrung mit Perl bzw. CGI? Ich setze jetzt erst mal ein "ja" voraus, ansonsten muß ich weiter ausholen.

    Wenn ich Dich richtig verstanden habe, möchtest Du beim Aufruf der index.cgi zu einer Seite verzweigen, die nach dem Fragezeichen steht. Dazu hast Du jetzt zwei Möglichkeiten:

    a) Du erstellst in einer Datei ein Liste der Art:
    feedback -> feedback.html
    test -> test/index.html
    lang -> ganz/langer/pfad/zur/datei.html?mit=parametern

    b) Du gibst immer die komplette Datei an, also statt "index.cgi?lang" schreibst Du "index.cgi?ganz/langer/pfad/zur/datei.html%3Fmit=parametern" (%3F entspricht dem Fragezeichen). Wenn Du keine Parameter brauchst (also immer Seiten angeben kannst, die auf .html enden), kannst Du das .html auch weglassen.

    Letztere Funktion ist wesentlich einfacher. Du nimmst $seite=$ENV{'QUERY_STRING'} und verzweigst auf http://deine-domain.de/$seite.html mittels print "Location: http://...\n\n"; - im Grunde ein Einzeiler.

    Die erste Funktion ist komplizierter und belastet den Server auch deutlich mehr (es sei denn, Du schreibst alle Codes direkt in das Script), außerdem ist es schlechter zu warten. Dafür ist sie flexibler, wie man an obigen Beispielen schon sehen kann.

    Konnte ich Dir schon helfen?

    Cheatah