2.2 Mapping URLs to Paths
This module provides a means of mapping
URLs to paths on the filesystem.
value
procedure
(make-url->path base) → url->path/c
base : path-string?
The url->path/c returned by this procedure considers the root
URL to be base. It ensures that ".."s in the URL
do not escape the base and removes them silently otherwise.
procedure
(make-url->valid-path url->path) → url->path/c
url->path : url->path/c
Runs the underlying url->path, but only returns if the path
refers to a file that actually exists. If it is does not, then the suffix
elements of the URL are removed until a file is found. If this never occurs,
then an error is thrown.
This is primarily useful for dispatchers that allow path information after
the name of a service to be used for data, but where the service is represented
by a file. The most prominent example is obviously servlets.
procedure
(filter-url->path regex url->path) → url->path/c
regex : regexp? url->path : url->path/c
Runs the underlying url->path but will only return if the
path, when considered as a string, matches the regex. This is
useful to disallow strange files, like GIFs, from being considered
servlets when using the servlet dispatchers. It will return a
exn:fail:filesystem:exists? exception if the path does not
match.