TED116: Anzeigen von perl-Dateien

Hallo Forengemeinde,

ich hab da mal wieder ein Problemchen.
Per Suchmaschine werden alle meine Seiten nach einem Begriff durchsucht und das Ergebnis angezeigt. Darunter können sich auch cgi-Dateien befinden (*.pl).
Das Ergebnis besteht dann aus links, um eben zu dieser Seite zu gelangen. Bei html-Dateien klappt das auch. Klick ich aber die Perl-Datei an, denkt mein Browser (Netscape) ich möchte die Datei herunterladen und öffnet mir das Downloadfenster.(Is ja auch keine html-Datei).
Gibt es eine Möglichkeit, dem Benutzer auch die *.pl (mit html-Code) Dateien anzeigen zu lassen?

Grüße TED116

  1. Per Suchmaschine werden alle meine Seiten nach einem Begriff durchsucht und das Ergebnis angezeigt. Darunter können sich auch cgi-Dateien befinden (*.pl).

    Meinst Du Perl-Skripts oder CGI-Anwendungen?

    Klick ich aber die Perl-Datei an, denkt mein Browser (Netscape) ich möchte die Datei herunterladen und öffnet mir das Downloadfenster.(Is ja auch keine html-Datei).

    Das klingt so, als wären es eben doch "nur" Perl-Skripts und keine CGI-Anwendungen. (Die würden jetzt nämlich ausgeführt und nicht zum Download angeboten.)
    Davon hängt aber genau ab, was Du tun kannst ...

    Gibt es eine Möglichkeit, dem Benutzer auch die *.pl (mit html-Code) Dateien anzeigen zu lassen?

    Wenn es CGI-Anwendungen sind (also auf Deinem Server in einem Verzeichnis installiert sind, in welchem sie als CGI-Anwendungen interpretiert werden), dann nein, jedenfalls nicht direkt.
    (Ich würde in diesem Falle in einem separaten Verzeichnis symbolic links auf diese Skripte anlegen und die Webserver-Konfiguration entsprechend modifizieren, daß symbolic links traversiert werden dürfen.)

    Wenn es "nur" Perl-Skripte sind, dann ja. Ändere einfach den MIME-Typ für *.pl in dem entsprechenden Verzeichnis auf irgendwas, das der Browser anzeigen kann, beispielsweise auf "text/plain". .htaccess wäre die eleganteste Methode dafür, falls Dein Webserver das kann.

    1. Meinst Du Perl-Skripts oder CGI-Anwendungen?

      Ich bin noch nicht so der Crack. Was ist genau der Unterschied?
      Ich habe ein Perl-Skript/Perl-Datei, in welcher ich zum einen eine neue html-Seite anzeigen lasse und davor die Formulareingaben verarbeite.

      Wenn es CGI-Anwendungen sind (also auf Deinem Server in einem Verzeichnis installiert sind, in welchem sie als CGI-Anwendungen interpretiert werden), dann nein, jedenfalls nicht direkt.

      Sie liegen im cgi-bin Verzeichnis

      (Ich würde in diesem Falle in einem separaten Verzeichnis symbolic links auf diese Skripte anlegen und die Webserver-Konfiguration entsprechend modifizieren, daß symbolic links traversiert werden dürfen.)

      Gibt es dazu nähere Beschreibungen (wie man was modifizieren kann / soll)

      Grüße TED116

      1. Meinst Du Perl-Skripts oder CGI-Anwendungen?
        Ich bin noch nicht so der Crack. Was ist genau der Unterschied?

        Stark vereinfacht: Perl-Skripts werden dann (aktive) CGI-Anwendungen, wenn sie in einem CGI-Verzeichnis installiert sind. (Und wenn sie Daten über die CGI-Schnittstelle lesen, natürlich.) Nicht aber, wenn Du sie z. B. nur zum Download anbietest.

        Sie liegen im cgi-bin Verzeichnis

        Ah, ja, jetzt ist die Aufgabenstellung klar.
        Die Antwort lautet also "gar nicht", und das ist gut so, weil man CGI-Anwendungen eben ausführen soll und nicht lesen (da könnten ja Passworte drin stehen).

        Deshalb mußt Du Deine CGI-Skripte, wenn man sie eben doch lesen können soll, als Kopien anbieten.
        Die einfachste Lösung ist natürlich, die Dateien von x.pl nach x.pl.txt zu kopieren und einen Link darauf zu setzen. Das Problem dabei ist, daß Du leicht vergessen kannst, die Kopie zu aktualisieren, wenn Du eine neue Version des Originals installierst - deshalb die Idee mit der "logischen Kopie" über symbolic links.

        und die Webserver-Konfiguration entsprechend modifizieren, daß symbolic links traversiert werden dürfen.)
        Gibt es dazu nähere Beschreibungen (wie man was modifizieren kann / soll)

        Jetzt kommt es auf Deine Plattform an (symbolic links gibt es nur unter UNIX, nicht unter Windows; anlegen mit dem Shell-Kommando "ln -s <original> <kopie>, also fast wie ein Copy-Kommando) und auf Deinen Webserver (bei Apache kann ich es Dir erklären).