perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fred Moyer <f...@redhotpenguin.com>
Subject Re: Redirect WTF
Date Tue, 26 Jan 2010 23:18:39 GMT
On Tue, Jan 26, 2010 at 2:58 PM, David E. Wheeler <david@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
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

Mime
View raw message