modpython at xhaus.com
Mon Jan 7 19:32:10 EST 2002
Greetings All, And many thanks to Grisha for an excellent body of work. I'm trying to get a PythonTransHandler working. What I am trying to do is modify an URL before it goes through standard Apache processing. (See below for an explanation why, if you wish) Could someone possibly give me a simple example (including configuration) of how I could, for example, change every request for a .html file to a request for a .xyz file. That is, a request for /admin/index.html would become a request for /admin/index.xyz *without* sending a redirect back to the client. Or a more sophisticated example, how could I turn a request for /admin/abc1234/update/item4567 into a request for /admin/doit.html?sessionID=abc1234&command=update&what=item4567 Many thanks for any help offered. Regards, Alan. P.S. I'm working with modpython 2.7.6, win2k, apache 1.3.22 and Python 2.1.1 P.P.S. Why: I am trying to implement URL rewriting for session tracking. Rather than try to modify every <a href> and <form action> to contain a session ID, I was hoping to take a quick solution using a <base href> element in <head>. In fact I was hoping to encode several parameters like this, i.e. as pseudo-directory names. Why do it this way, rather than setting all the parameters as query args, i.e. "?sessID=abc123&command=update". For a couple of reasons:- 1. Because it looks far neater in the URL 2. Because I can put all that stuff into the <base href>, which is simpler in code terms, because I don't have to worry about <a href> and <form action> adding their own query parameters, and potentially having two "?" query delimiters in the URI, which is invalid. So, the way it would work is this: A HTML document (H) is transmitted which contains the parameters as "directory names" in the <base href> When the client activates a link in H or submits a form from H, I extract the parameters out of the requested URI, and execute whatever functionality. The problem is that Apache complains if any of the "pseudo directories" does not physically exist. Which is a rather a pain. That's why I need to change the URL before Apache gets at it, which the documentation implies TransHandler can do. I quote :- "This routine gives allows for an opportunity to translate the URI into an actual filename, before the server's default rules (Alias directives and the like) are followed. "