[racket] Apache redirections

From: Eli Barzilay (eli at barzilay.org)
Date: Tue Feb 8 11:51:06 EST 2011

This is a general JFYI for people who run the racket web server via an
apache proxy and see strange failures (if you don't do that then you
can safely ignore this message).

(Specifically for Jay: it's probably worth a note in the "How do I use
Apache with the Racket Web Server?"  section of "server-faq.scrbl" --
I've done this, but it's worth a second look.)

It looks like in recent versions of apache (2.2.17) when rewrite rules
are applied the URIs will always get escaped.  This leads to problems
with the racket server's urls -- something like "servlets;blah" gets
substituted as "servlets%3Bblah", which means that the ";" lost its
original meaning as a separator.  The easy way I found around this is
to add an `NE' ("No Escape") flag to the rule, for example, the
rewrite rule in the example should be:

  RewriteRule ^handin/(.*)$ https://localhost:9770/handin/$1 [P,NE]

I'm mentioning this because I've seen two separate things break as a
result (it broke planet after the upgrade, and I also needed to fix my
class handin server's proxy rule).

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the users mailing list.