[Dancer-users] strangeness with Dancer prefix and apache proxy

Tiago Quintela kintela at gmail.com
Sun Feb 5 22:38:37 CET 2012

Hi, i had your trailing slash problem this week and i just corrected my
handler regexs to something like '/foo\/?', so that you don't get the 404.
As far as i know, Apache proxypassreverse handles the problem with a 302.

For example, an HTTP redirection often takes place when a user (or author)
forgets a trailing slash in a URL. So the response to a request for
http://www.example.com/app1/foo proxies to
http://internal.example.com/foowhich generates a response:

        HTTP/1.1 302 Found
        Location: http://internal.example.com/foo/

But from the outside world, the net effect of this is a "No such host"
error. The proxy needs to re-map the Location header to its own address
space and return a valid URL

        HTTP/1.1 302 Found
        Location: http://www.example.com/app1/foo/

The command to enable such rewrites in the HTTP Headers is
ProxyPassReverse. The Apache documentation suggests the form:

src- http://www.apachetutor.org/admin/reverseproxies

Tiago Quintela

On 5 February 2012 21:00, Puneet Kishor <punk.kish at gmail.com> wrote:

> I have the following in my apache2 conf file
>    <VirtualHost *:80>
>        ServerName my.computer.edu
>        DocumentRoot "/path/to/Sites"
>        <Proxy *>
>            Options FollowSymLinks MultiViews
>            AllowOverride All
>            Order allow,deny
>            allow from all
>        </Proxy>
>        SetEnv force-proxy-request-1.0 1
>        SetEnv proxy-nokeepalive 1
>        ProxyPreserveHost On
>        ProxyPass        /d/apps
>        ProxyPassReverse /d/apps
>    </VirtualHost>
> When I go to http://my.computer.edu/d/apps/js/app.js the log shows
>    request: GET //js/app.js from in ../Dancer/Handler.pm l. 52
> When I go to the log shows
>    request: GET /js/app.js from in ../Dancer/Handler.pm l. 52
> Why do I get to leading slashes in the first request above?
> Additionally, when I go to http://my.computer.edu/d/apps I get a correct
> response (the double slashes notwithstanding). However, when I go to
> http://my.computer.edu/d/apps/foo then I get a 404. My perl code is like
> so
>    package apps;
>    use Dancer ':syntax';
>    use Dancer::Plugin::Database;
>    load_app 'eb', prefix => '/foo';
> --
> Puneet Kishor
> _______________________________________________
> Dancer-users mailing list
> Dancer-users at perldancer.org
> http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.backup-manager.org/pipermail/dancer-users/attachments/20120205/b3ac93ae/attachment.htm>

More information about the Dancer-users mailing list