PATH_INFO: Not found
Bülthuis
- cgi
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.
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
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.
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.
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.
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
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
... 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