Bülthuis: PATH_INFO: Not found

Hallo,

ich habe mein Problem schon öfter gepostet, aber ich
hab‚s immer noch nicht, ich glaube, vielleicht habe
ich immer zuviel "Overhead" mitgeliefert und keiner
wollte sich so recht da durchwurschteln.

Allerdings: Ich konnte das Problem jetzt aufs
Einfachste reduzieren:

Gebt einmal "www.nordboerse.de/cgi-bin/text.pl" ein.
Es wird ein kurzer Text ausgegeben.

Gebt nun einmal
"www.nordboerse.de/cgi-bin/text.pl/dummy" ein.
"/dummy" wird dann lediglich als Pfadinformation der
Environment-Variablen "PATH_INFO" übergeben,
die Ausgabe ist die gleiche.
Daß eine Datei "/dummy" gar nicht existiert,
interessiert den Server nicht, es wird ja nicht auf
sie zugegriffen.

Gebt nun einmal
"www.nordboerse.de/cgi-bin/text.pl/cgi-bin/dummy" ein.
oder
"www.nordboerse.de/cgi-bin/text.pl/cgi-bin/text.pl".
Ausgabe: "Not found".

Es ist und bleibt mir ein Rätsel.
Lokal auf meinem Rechner (W98, Apache und andere
Webserver) ändert sich nichts, die Ausgabe ist wieder
die gleiche.
Anm: Ich brauche die übergebenen Pfade als Rücksprunginfo,
damit der Benutzer zurück kann zum aufrufenden Skript.

  1. Hi,

    Allerdings: Ich konnte das Problem jetzt aufs
    Einfachste reduzieren:

    Sehr gute Idee.

    Gebt nun einmal
    "www.nordboerse.de/cgi-bin/text.pl/cgi-bin/dummy" ein.
    Ausgabe: "Not found".
    Es ist und bleibt mir ein Rätsel.

    Mir auch.

    Ich habe Deine URLs zeichen für Zeichen verlängert.
    Der Fehler tritt ab dem ersten Zeichen nach
    "www.nordboerse.de/cgi-bin/text.pl/cgi-bin/" auf
    (egal, welches Zeichen dort folgt).

    Kannst Du für die entsprechenden Zugriffe in der access_log
    nachsehen, was genau dort versucht wurde?

    Ich habe hier lokal die Forum-Suchmaschine installiert.
    Ich habe den URL zu ihrem Aufruf (ohne Parameter) um
    beliebige Pfade weiter ergänzt, insbesondere die von Dir
    genannten Werte "dummy" und "cgi-bin/dummy". Egal, was
    ich dahinter schreibe, es wird immer die Suchmaschine
    korrekt gestartet - ich kann Deinen Fehler also hier
    nicht reproduzieren (Apache 1.3.0, WinNT 4.0). Aber
    es ist bestimmt nicht "cgi-bin" irgendwo magisch im
    Apache eingebrannt - ich vermute eher einen mysteriösen
    Effekt aufgrund Deines directory mappings oder so ...

    Anm: Ich brauche die übergebenen Pfade als Rücksprunginfo,
    damit der Benutzer zurück kann zum aufrufenden Skript.

    Und warum kannst Du den nicht einfach als normalen
    CGI-Parameter übergeben? Warum brauchst Du unbedingt
    "PATH_INFO"?

    mfG - Michael

    1. Hallo,

      vielen Dank für Deinen schnellen und ausführlichen Beitrag.

      Tja, "QUERY_STRING" ist bei mir schon mit was anderem belegt...
      (Nicht in der Problemdemo, aber sonst meistens.)

      Ohne mir gern den Vorwurf des Verbohrtseins auferlegen zu
      wollen, ich w i l l es halt wissen, ich glaube, das kennt jeder.

      Deinen Rat mit der Logdatei werde ich verfolgen, muß ich erst mal
      rausfinden, wo Str... die ablegt.

      Eine Frage noch, gibst Du mir noch einen Hinweis, was
      deine Anmerkung "directory mapping" meint ?

      Gruß Achim.

      1. Hi,

        Eine Frage noch, gibst Du mir noch einen Hinweis, was
        deine Anmerkung "directory mapping" meint ?

        offenbar hast Du ja in Deinem Apache eine Abbildung
        zwischen dem URL "/cgi-bin/" und einem Verzeichnis
        vorgenommen ("ScriptAlias") - das meinte ich damit.

        Ich weiß nicht, ob da irgendwas miteinander kollidiert,
        einaner überlappt oder was auch immer ...

        mfG - Michael

        P.S.: Wie alt ist Dein Apache? Die "1.3.0" in meinem
        Posting hätte eine "1.3.9." sein sollen ... sollten
        alle Stricke reißen, dann könntest Du mal in der Apache
        bug Datenbank nach passenden Stichworten suchen.

        1. Hallo,

          so viele Antworten auf meine Frage, super.

          Ich seh‚s mir morgen an, ein Überfliegen hat gezeitigt, daß
          wir dem Hasen auf den Pfeffer kommen.

          Wir haben hier in Wilhelmshaven das sog.
          "Wochenende an der Jade", ich muß eben mal dorthin.

          Vielen, vielen Dank für Eure Mitarbeit, ich weiß das sehr
          zu schätzen.

          Achim.

  2. Hallo Achim,

    hier isse, die Lösung http://www.i-netlab.de/cgi-bin/flip.cgi
    oderhttp://www.i-netlab.de/cgi-bin/flop.cgi

    und weil Du es bist der Quelltext:

    ---zing---
    #!/usr/bin/perl

    flop.cgi

    use File::Basename;
    print "content-type:text/html\n\n";

    print "<h2>Script heisst: $ENV{SCRIPT_NAME}</h2>";

    if( $ENV{HTTP_REFERER} ){
    print "<h2>Angaben zum Script was mich aufrief</h2>";
    $fullpath = $ENV{HTTP_REFERER};
    print "Fullpath: $fullpath<p>";
    $script = fileparse($fullpath);
    print "Scriptname: $script<p>";
    print "<a href=/cgi-bin/$script>Wer hat mich gerufen?</a>";
    }else{
    print "<a href=/cgi-bin/flip.cgi>Zum anderen Script</a>";
    }
    ---zang---

    Viele Grüße, Rolf

    1. ... der Einstieg ist schwierig, wenn du über die o.g. Links reinkommst (hab ich grad sehen müssen), aber im Prinzip gehts so ;-)

      Viele Grüße, Rolf