On Tue, Jan 26, 2010 at 2:58 PM, David E. Wheeler <da...@kineticode.com> wrote: > Fellow mod_perlers, > > Here's a weird one for you. I'm testing Bricolage on mod_perl 2, getting it > ready for release, and noticed that some sort of redirect is happening when I > don't expect it. > > To whit, I have this configuration:
I don't know if this could be an issue, but if I were to write this config snippet, I would create a root <Location /> block, and put the transhandler outside that (with the other location based directives inside). > > NameVirtualHost *:80 > <VirtualHost *:80> > DocumentRoot /usr/local/bricolage/comp > ServerName benedict.local > DefaultType "text/html; charset=utf-8" > AddDefaultCharset utf-8 > SetHandler modperl > PerlResponseHandler Bric::App::Handler > PerlAccessHandler Bric::App::AccessHandler > PerlCleanupHandler Bric::App::CleanupHandler > PerlOptions +GlobalRequest > RedirectMatch permanent .*\/favicon\.ico$ > http://benedict.local/media/images/bricicon.ico > TraceEnable off > PerlTransHandler Bric::App::PreviewHandler::uri_handler > <Location /logout> > PerlAccessHandler Bric::App::AccessHandler::logout_handler > PerlCleanupHandler Bric::App::CleanupHandler > </Location> > <Location /login> > SetHandler modperl > PerlAccessHandler Bric::App::AccessHandler::okay > PerlResponseHandler Bric::App::Handler > PerlCleanupHandler Bric::App::CleanupHandler > </Location> > <Location /media> > SetHandler default-handler > PerlAccessHandler Apache2::Const::OK > PerlCleanupHandler Apache2::Const::OK > </Location> > <Location /media/js> > ForceType "text/javascript; charset=utf-8" > </Location> > <Location /media/css> > ForceType "text/css" > </Location> > <Location /data> > SetHandler default-handler > </Location> > <Location /soap> > SetHandler modperl > PerlResponseHandler Bric::SOAP::Handler > PerlAccessHandler Apache2::Const::OK > </Location> > <Location /dist> > SetHandler modperl > PerlResponseHandler Bric::Dist::Handler > </Location> > <Location /data/preview> > ExpiresActive On > ExpiresDefault "now plus 0 seconds" > PerlFixupHandler Apache2::Const::OK > </Location> > </VirtualHost> > > Note that the hosthame is "benedict.local". Now I often just use localhost > when using Bricolage, and most of the time that works fine. But there is one > JavaScript-triggered redirect button that looks like this: > > window.location.href = '/admin/profile/dest?id=1024' > > And when I click it, The request goes to mod_perl and I see it come through > the access handler and the fixup handler as a request to localhost. But then > the PerlReponseHandler never fires! Instead, I see another request come in > for the same URL path, but this time for the host name benedict.local. It's > almost as if something in Apache or mod_perl is seeing that the request is > for a different domain name and helpfully trying to redirect. But it's not > helpful (I get a new login screen), and I don't understand why the same thing > doesn't happen for other requests. > > Is there something like that in mod_perl2 and I'm just missing it? Or is it > more likely that there's some other mysterious bit of code in Bricolage > that's doing it and I just haven't found it yet? If the latter, what comes > between the PerlFixupHandler and PerlResponseHandler? Because in that first > request, the fixup handler fires but the response handler never does. > > TIA, > > David > > > > > > > > > > > > > > >