[racket] What controls the web-server continuation URL?

From: Noel Welsh (noelwelsh at gmail.com)
Date: Mon Jan 17 09:50:31 EST 2011

I should have a better answer, but all I can think of right now is
adding a dispatcher that captures all requests to /podcasting, and
adding a simple dispatcher + servlet to redirect / to /podcasting. The
web server documents dispatchers.


On Mon, Jan 17, 2011 at 12:22 AM, Norman Gray <norman at astro.gla.ac.uk> wrote:
> Greetings.
> What controls the continuation URL generated when using the Racket web server?
> I'm using send/formlet to present and process a form.  The form is presented on a page called http://localhost:8000/user, and when it's submitted, it goes to a continuation page .../user;blah.
> That works fine on http://localhost:8000/user.  But on the deployment machine, the server in question is behind a proxy, so that the actual public URL is http://example.edu/podcasting/user.  In this case, the continuation URL generated is just http://example.edu/user;blah, which is of course wrong.
> Now, the server obviously doesn't know that it's sitting behind a proxy, so it needs to be told to generate the extra element in the URL path.  But how?
> The server is started up with:
>          (serve/servlet audiotag-dispatch
>                         #:servlet-path "podcasting/"
>                         #:servlet-regexp #rx""
>                         #:listen-ip #f ;listen on all interfaces (only loopback by default)
>                         #:port (port-number)
>                         #:launch-browser? #f
> #:servlet-path looks likely, here, but it doesn't seem to have the desired effect.  None of the other configuration parameters look likely either, and the contents of collects/web-server is too clever for my frazzled brain.  Can anyone advise?
> I apologise if the answer is RTFM, but I'm on a bit of a deadline, enough that it seems prudent to give in and ask quickly, rather than save my pride.
> Thanks for any pointers.
> Best wishes,
> Norman

Posted on the users mailing list.