Andreas: Gefaktes Verzeichnis in einer URL

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

  1. Hi,

    warum keine Dateiendung? Es geht im Normalfall auch so:

    cgi-bin/script.pl/parameter.gif

    E7

    1. 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

      1. Hi,

        und wenn du über die .htacess einfach den Dateityp .gif parsen lässt?

        E7

        1. 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

          1. 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

            1. 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

              1. 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

                1. 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

        2. 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

  2. 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

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. 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

      1. 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

        --
        Es ist uns nicht möglich, in einem Bereich unseres Lebens richtig zu verhalten, wenn wir in allen anderen falsch handeln. Das Leben ist ein unteilbares Ganzes.