Apache-fråga: Trigga script vid anrop till vissa URL:er ?

Tråden skapades och har fått 11 svar. Det senaste inlägget skrevs .
1

Jag står inför en utmaning som jag knappt vet hur jag ska beskriva, men jag gör ett tappert försök och hoppas någon förstår vad jag menar:

På en WebDAV-anpassad apacheserver som används i ett intranät publiceras dagligen hundratals PDF filer som sedan läses/betraktas genom Adobe Acrobats PDF-plugin i Safari / Windows Internet Explorer

Vad som händer med denna kombination av mjukvara och WebDAV-konfiguration är att Acrobats korrekturverktyg (tänk gula post it-lappar) kan användas över nätet och kommentarsfilerna skrivs ner på nätet genom att Acrobat skickar WebDAV-kommandon till servern.

Vad jag skulle vilja göra är att "fånga" att dessa kommandon sker och då dra igång ett php-script.

Innan någon säger "ja men det är väl bara att ha en php-script som sker vid öppning/stängning av dokumentet" så kan jag säga att det går inte. Pga av olika skäl kan vi aldrig veta varifrån eller hur länkar till de olika pdf-dokumenten skapas.

Det jag undrar över är därför om man kan konfigurera Apache så att man kan koppla ett script till anrop på viss typ av event /alternativt en viss grupp av URL:er (t.ex. "http://Server/PDF-filer/*"

Fattar någon vad jag menar? Och kan det göras?

Möjligen en något dyr lösning, men Switch från Gradual kanske kunde vara en vettig investering. Det bör kunna lösa ditt problem och mer därtill.
http://www.gradual.com/Home/home.php

Hmm... Jag ser inte vad det här överhuvudtaget har att göra med det jag frågade. Missar jag något?

För att repetera frågan: Jag vill kunna trigga ett script när en viss kategori URL:er accessas via Apache. Går det?

Fattar jag rätt så vill du att http://server/pdf-filer/hej.pdf ska trigga något i stil med http://pdflattjo.php?file=hej.pdf. I min lilla värld så borde det gå att lösa med mod_rewrite, förutsatt att man skickar pdf-filen mha php-filen. Ett annat alternativ är att man helt enkelt spolar apaches webdav-modul och skriver en egen (finns färdiga att bygga vidare på) webdav-implementation i php direkt, och på så sätt bygga in triggers och allt vad det kan vara.

Ursprungligen av irrelogical:

Hmm, http://httpd.apache.org/docs/2.2/mod/mod_actions.html kan vara värt att kika på.

Det där verkar vid en första anblick vara PRECIS vad jag är ute efter!

Tusen tack, här ska läsas!

Precis så menar jag, men som sagt kan jag inte använda en PHP-"wrapper" eftersom filen kan länkas till på ett sätt utom min kontroll.

Därför undrar jag om Apache kan "fånga" att någon accessar en viss fil, eller idealt, att webdav-verb skickas etc.

http://httpd.apache.org/docs/2.2/mod/mod_ext_filter.html hittade jag med. Iofs så blir det lite av en omväg, men du kan ju göra ett filter i valfritt programmeringsspråk som bara skickar igenom datan utan att ändra den, och samtidigt triggar det andra scriptet. Prestandaförlust javisst, men det bör funka finfint.

(+att det inte märks av på något sätt för användaren, det är bara att lägga dit filen)

Snacka om att gå över ån efter vatten:

http://localhost/manual/handler.html

Ursprungligen av Richard Rönnbäck:

Snacka om att gå över ån efter vatten:

http://localhost/manual/handler.html

Fast det bygger ju fortfarande på att man har ett script som levererar filen. Den "ultimata" lösningen hade ju varit om apache hade skickat filen precis som vanligt, och samtidigt kört igång scriptet "vid sidan om".

Så uppfattar jag inte dokumentationen. Som jag läser det är mod_actions precis det jag är ute efter, dvs då en fil av viss typ etc. efterfrågas triggas scriptet.

Intressant i det här fallet är också att koppla triggers till metoden, för som WebDAV funkar skickar den ju utökade metoder typ "MKDIR", "WRITE", "PROPFIND" etc. och det är precis dessa händelser jag vill fånga

Ursprungligen av http://httpd.apache.org/docs/2.2/handler.html:

Then the CGI script is responsible for sending the originally requested document (pointed to by the PATH_TRANSLATED environment variable) and making whatever modifications or additions are desired.

Jag uppfattar det som att "handlern" måste skicka filen för att det ska hända något. Det är ju inte några större problem att ordna iofs.

1
Bevaka tråden