[racket] Apache redirections

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Tue Feb 8 12:36:14 EST 2011

Eli Barzilay wrote at 02/08/2011 11:51 AM:
> [...] 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 [...]

Looks like there's been a standards change, and you might want to change 
the Racket Web Server...

I'm not sure what happened, but RFC 2396 used to give special meaning to 
semicolon (denoting parameters on path segments in hierarchical URIs), 
but that was obsoleted by RFC 3986, which seemed to remove the special 

I've never seen anyone use semicolons in the RFC 2396 intended way in 
practice.  The PLT Web Server and a couple of other frameworks use them 
only on the last path segment (in RFC 2396 interpretation).

In light of the interpretation of RFC 3986, perhaps the Racket Web 
Server should resort to parsing the ";" out of the last path segment, 
after unescaping.  Alternatively, stop using semicolon, and put the 
information in an (HTML form GET-like) name-value query parameter of the 
HTTP URL instead.

There might be newer specs I'm not aware of.  I last implemented RFC 
2396, and actually had robust and efficient support for semicolon as 
they wanted it at the time. :)


Posted on the users mailing list.