Gefaktes Verzeichnis in einer URL
Andreas
- webserver
0 e70 Andreas0 e70 Andreas0 small-step
0 Alexander Foken
Hi,
ich verwende sozusagen ein gefaktes Verzeichnis, um eine Software auszutricksen. Es geht darum, dass die Software eine URL zu einer Grafik erwartet, diese Grafik jedoch von einem CGI erzeugt wird. Da die Software jedoch nur .GIF oder .JPEG als Dateierweiterung akzeptiert und bei .PL oder .CGI dicht macht, habe ich mir folgendes einfallen lassen:
http://www.domain.de/cgi-bin/script/parameter.gif
Das eigentliche CGI versteckt sich nur in diesem Teil der URL:
http://www.domain.de/cgi-bin/script
"script" ist also ein Script ophne Dateierweiterung, welches aufgerufen wird. Innerhalb des Scripts kann ich nun den Rest der URL (also "/parameter.gif") über die Umgebungsvariable "PATH_INFO" auslesen. Das funktionierte bis jetzt auch wunderbar.
Nun ist es aber so, dass ich zu einem anderen Provider gewechselt habe und auf dem neuen Server zwar
http://www.domain.de/cgi-bin/script
funktioniert, jedoch
http://www.domain.de/cgi-bin/script/parameter.gif
einen "500 Internal Server Error" verursacht. Ich kann mir nur vorstellen, dass das Problem hier in der Apache Serverkonfiguration zu finden ist und habe deshalb die httpd.conf von beiden Servern verglichen. Dabei ist mir nichts aufgefallen, woran es liegen könnte...
Deshalb meine Frage: Was muss ich tun, damit der neue Server erkennt, dass "script" kein Verzeichnis, sondern ein Script ist?
Ciao
Andreas
Hi,
warum keine Dateiendung? Es geht im Normalfall auch so:
cgi-bin/script.pl/parameter.gif
E7
Hi,
warum keine Dateiendung?
die Software scheint die URL nach ".pl" und ".cgi" zu durchsuchen. Sobald sowas darin vorkommt, wird die URL nicht akzeptiert. Der Programmierer war wohl etwas paranoid ;o) Deshalb keine Dateiendung.
Die Dateiendung ist bei Linux aber doch sowieso unwichtig, jedenfalls nicht so wichtig, wie bei Windows das ".exe" für ausführbare Dateien. Deshalb vermute ich mal ein Problem mit der Apache-Konfiguration.
Ciao
Andreas
Hi,
und wenn du über die .htacess einfach den Dateityp .gif parsen lässt?
E7
Hi,
hört sich nach einer Lösung an - aber wie genau meinst Du das? .htaccess hatte ich bisher nur für Verzeichnisrestriktionen verwendet...
Ciao
Andreas
Hi,
wie das genau geht, weiß ich nicht - aber ich glaube, in SelfHTML gibt's dazu ne Seite; und wenn nicht - bei Anleitunge, wie man PHP oder Perl zu installieren habe, sind diese Möglichkeiten auch vorgegeben...
E7
hi,
wie das genau geht, weiß ich nicht
wenn du nur sowas halbgares beizutragen hast, kannst du ruhig drauf verzichten, den titel in "lösung?" abzuändern.
gruss,
wahsaga
Hi,
also ich hab' jetzt so ziemlich alles ausprobiert, aber Fakt ist: Die URL muss wie vorher aussehen und die Lösung dafür ist den Server irgendwie dazu zu bringen, dass der "script" ausführt und nicht als Verzeichnis ansieht. Vielen Dank für die bisherigen Lösungsvorschläge, aber ich brauche eine direkte Lösung und kein Workaround...
Ciao
Andreas
Hi,
die Lösung wäre gewesen:
1. Update auf die aktuellste Apache 2 Version
2. Option "AcceptPathInfo On" explizit für diese Datei via .htaccess oder schon in der httpd.conf
*boah* das war gar nicht so einfach...
Ciao
Andreas
Hallo,
und wenn du über die .htacess einfach den Dateityp .gif parsen lässt?
Das würde aber voraussetzen, dass du für jedes bild ein eigenes Script schreibst. Wo willst du hier Parameter übergeben?
Gruß,
Small-Step
Moin Moin !
Bist Du ganz sicher, daß der Provider einen Apachen einsetzt? Dein Problem kommt mir sehr bekannt vor, denn der MS IIS kommt mit PATH_INFOs hinter CGI-URLs absolut nicht klar, sondern versucht stattdessen, den Namen des Scripts als ein weiteres Verzeichnis zu interpretieren, in dem er dann die GIF-Datei ausführen(!) will. Das geht natürlich mit 500 Internal Server Error in die Hose, je nach Konfiguration des Servers hängt der Request auch einfach, weil das mit *.gif verknüpfte Programm keinen Zugriff auf den Desktop hat und deswegen blockiert.
Alexander
Hi,
danke für den Tipp, aber es handelt sich um einen dedizierten Server definitiv mit SuSE Linux und Apache. IIS hat keine httpd.conf und läuft nicht so gerne auf SuSE ;o)
Ciao
Andreas
Hallo Andreas,
IIS hat keine httpd.conf und läuft nicht so
gerne auf SuSE ;o)
"Man hat schon Kuehe kotzen sehen."
Gruesse,
C'Spruecheklopfer'K