On Wed, Aug 18, 2004 at 09:36:45AM -0400, Dave Della Costa wrote: > Wow, I just got back in the office and I see I sparked quite a discussion! I > had suspected that this feature was specific to the first version of mod_perl, > alas... > > A little background: what I have been trying to do is essentially reset > document_root for a set of rewrite rules that I want to drop into place for our > developers who are using dynamic vhosts. The inability for our team to use the > rewrite rules that are present in the live application makes our testing and QA > environments incomplete. So I had hoped to not sacrifice the great benefits of > dynamic vhosts while being able to include without modification the same > rewrite rules that we use in our live applications. Because I do not want to > modify the rewrite rules, I've been wanting to alter document_root for the > lifetime of the request with the idea that the rewrite rules would execute with > this new document_root (I had also assumed that I would be alright to leave > document_root altered, as it would be re-evaluated upon every request). I > found myself pushing the limits of what mod_rewrite could do (I think...I'm > still skeptical of that, considering mod_rewrite's power), and turned to > mod_perl for help. > > Apparently this is not so simple no matter what technology one uses!
Apache caches the server_rec, so as Stas said, modifying it affects things globally, and across the request. In C, if I wanted to local'ize the server_rec for the request, I would make a copy of the server_rec, store it in r->server, and then modify its contents (top-level only) through r->server. Stas: is there a way to do this in mod_perl? What do you think of local'izing the server_rec when an application attempts to make request-specific changes? There would need to be a clear API for making request-specific or global changes. (Changes through r->server instead of directly through the global server rec, e.g. in the main httpd.conf) Maybe pass $r as an arg to the server_rec method if you want it local'ized? Just musing ... Cheers, Glenn -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html