Hello everyone -

I'm in the unfortunate position of being needing to write an Apache
2.0 module using mod_perl 2.0, while being simultaneously new to both
mod_perl, the Apache API, and perl itself. I guess I'm a glutton for
punishment, or something. (Did I mention this is all on Win32?)

What I want my module to be able to do is to substitute content from
various plug-in applications as the response to various URLs. For
example, if the user requests
        www.mydomain.com/app1/file
I want app1.exe (or whatever) to retrieve a file / run a database
query / do some processing and return some output. Importantly, I
*then* want the rest of Apache to treat this file as if it had come
from the file system, e.g. it it's a .php file I still want PHP to
handle it, if there are any other handlers assigned I still want them
to handle it. In short, this substitution has to be completely
transparent. (This should be possible by returning Apache::DECLINED,
but it doesn't seem to work like that, see below)

Now, I know it's possible to configure Apache with app1.exe as a
handler for /app1, etc.. What I'm creating is a single module that
handles *all* URLs (i.e. handles "/"), and manages the mapping itself.

So far, I think the best way to do this is to create a URI translation
handler module which will simply use $r->uri() to call the application
with whatever data and parameters it needs. First question:

1. Is this really the best way to supply the server with content that
comes from elsewhere than simply the file system?

I've written a simple translator which can return .html files, but if
I set the uri to a .php file the server seems to go into a loop (I've
been unable to diagnose what's actually happening).

2. Why would setting $r->uri() to a .php file be any different to the
rest of the server than setting it to a .html file?

and finally

3. How to ensure that the server treats the output of an application
the same as it does a file, i.e. applying all the necessary handlers
etc?

Any and all advice appreciated, including "You fool! This already
exists!" :-)

Seldo.
____________________________________________
  Seldo Voss: www.seldo.com
  ICQ #1172379 or [EMAIL PROTECTED]
--------------------------------------------
To know the road ahead, ask those coming back.

Reply via email to