[Gelöst] Handling von Dateierweiterungen

Alles, was den Apache betrifft, kann hier besprochen werden.

[Gelöst] Handling von Dateierweiterungen

Postby MSJones » 20. October 2009 10:55

Hallo zusammen.

Ich suche einen Weg, wie ich bestimmte, von mir definierte Erweiterungen von Dateinamen so handeln kann, daß bestimmte Programme ausgeführt werden.

Beispiel:
Ich rufe im Browser eine Datei mit dem Namen "xyz.abc" auf.
Anhand der Erweiterung ".abc" soll das Programm "Count.exe" aufgerufen werden.

Diese Funktion wird unter verschiedenen Windowssystemen benötigt. Meistens XP und Vista, sollte aber demnächst auch noch 7 hinzu kommen.

Ich hab zwar folgende Lösung über die Registry gefunden:
Code: Select all
[HKEY_CLASSES_ROOT\.pl]
[at] ="Perl"

[HKEY_CLASSES_ROOT\.pl\PersistentHandler]
[at] ="{5e941d80-bf96-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\Perl]

[HKEY_CLASSES_ROOT\Perl\shell]

[HKEY_CLASSES_ROOT\Perl\Shell\ExecCGI]

[HKEY_CLASSES_ROOT\Perl\Shell\ExecCGI\Command]
[at] ="\"d:\\xampp\\perl\\bin\\perl.exe\" \"%1\""


Aber da meine Webseite von CD aus laufen soll, kann ich nicht einfach an jedem Rechner die Registry ändern.

Am praktischsten wäre ein Befehl wie "CGIMapExtension", aber läuft nur auf NetWare-Systemen, soweit ich das in Erfahrung bringen konnte.

Hoffe, jemand von euch kann mir da ein wenig weiterhelfen.
Last edited by MSJones on 21. October 2009 10:27, edited 1 time in total.
MSJones
 
Posts: 2
Joined: 20. October 2009 10:42

Re: Handling von Dateierweiterungen

Postby Nobbie » 20. October 2009 15:40

Lies Dir mal die Doku zu "AddHandler" und "Action" durch. Allerdings müssen diese Programme (also in diesem Fall Count.exe) in jedem Fall CGI-Programme sein, d.h. es werden bestimmte Daten (HTTP Header usw.) erwartet, sonst meldet der Browser Timeouts u.ä.

Diese Einstellungen in der Registry ist die völlig falsche Baustelle, das ist die Verknüpfung der Extensions mit Programmen auf Betriebssystemebene, Du aber brauchst es eine Ebene "höher", nämlich auf Webserver-Ebene. Der Webserver (Apache) muss die Action veranlassen, nicht das Betriebssystem. Deswegen auch die Konformität zu CGI.

Siehe http://httpd.apache.org/docs/2.0/mod/mo ... tml#action
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Handling von Dateierweiterungen

Postby MSJones » 21. October 2009 10:25

Hallo Nobbie.
Mit AddHandler und Action klappt das wunderbar.

Hatte mir zeitweise damit geholfen, daß ich folgendes gemacht hab:
Code: Select all
AddHandler cgi-script .abc
<FilesMatch ".+\.abc">
   #ForceType application/x-executable
   Options +ExecCGI
   ForceType image/jpeg
   #order allow,deny
   #allow from all
   SetHandler cgi-script
</FilesMatch>


Dann das CGI-Skript nach xyz.abc umbenannt und an eine ausführbare stelle gelegt.
Damit hab ich dann aber natürlich einen zentralen Anlaufpunkt, zu dem ich immer referenzieren mußte, aber ging für den Notfall auch.

Mit der Registry war mir klar, daß das wohl nicht klappen wird. Habs halt mal so als ersten Ansatzpunkt beim googlen gefunden :-)

Aber mit AddHandler und Action iss schon ein gutes Stück eleganter würd ich sagen.

Danke für den Tip.
MSJones
 
Posts: 2
Joined: 20. October 2009 10:42


Return to Apache

Who is online

Users browsing this forum: No registered users and 18 guests