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
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

Reply via email to