url-rewriting - rewrite urls with regular expression matching

This module provides a url rewriting for the PLT Web Server. It will match a host and a url, calling a rewrite function if matched.


This module does (dynamic-require "rewrite-rules.scm" 'rewrite-rules) and (dynamic-require "rewrite-rules.scm" 'rewrite-rules-debug) if the file rewrite-rules.scm or the file is found in the current directory.

This file must implement a module rewrite-rules and provide two functions: (rewrite-rules) and (rewrite-rules-debug)

(rewrite-rules) --> (list of rule)

A rule is a list of two regular expressions or boolean #t and a rewriter function. If #t is used as a rule, the rule will allways match the given host or url. The match will be (list <host>) or (list <url>) : (list host:pregexp-string | #t url:pregexp-string | #t rewriter:(mhost:pregexp-match murl:pregexp-match host:string url:string) --> new-url:string )

(rewrite-rules-debug) --> boolean

Must return #t to turn on rewrite debugging; #f otherwise.

Provided functions

(url-rewrite url:url?|string?) --> string?

Matches a given url with all registered RULES and rewrites for the first match. Returns the rewritten URL as a string or the original url, if no rule matches.

This function can be used to test your url rewriting system.

(url-rewriting-debug boolean?) --> undefined

Turns on or off debugging for the url-rewriting. Works with the url-rewrite function. To turn on debugging in the web server context, see 'Configuring'