mod_rewrite and ProxyPass
[hcoop/domtool2.git] / lib / mod_rewrite.dtl
diff --git a/lib/mod_rewrite.dtl b/lib/mod_rewrite.dtl
new file mode 100644 (file)
index 0000000..7097ec5
--- /dev/null
@@ -0,0 +1,51 @@
+{{Support for Apache's mod_rewrite, which allows fancy mappings from URLs to
+  resources}}
+
+extern type redirect_code;
+{{An HTTP code to return as part of a redirection}}
+extern val temp : redirect_code;
+extern val permanent : redirect_code;
+extern val seeother : redirect_code;
+extern val redir300 : redirect_code;
+extern val redir301 : redirect_code;
+extern val redir302 : redirect_code;
+extern val redir303 : redirect_code;
+extern val redir304 : redirect_code;
+extern val redir305 : redirect_code;
+extern val redir307 : redirect_code;
+
+extern type rewrite_arg;
+{{Some mod_rewrite flags take arguments.
+  This type stands for values that may validly be given for one of those
+  arguments, which excludes commas and some other characters.}}
+
+extern type mod_rewrite_flag;
+{{See <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule">the
+  Apache documentation</a> for information on what these flags mean.}}
+
+extern val redirect : mod_rewrite_flag;
+extern val forbidden : mod_rewrite_flag;
+extern val gone : mod_rewrite_flag;
+extern val last : mod_rewrite_flag;
+extern val chain : mod_rewrite_flag;
+extern val nosubreq : mod_rewrite_flag;
+extern val nocase : mod_rewrite_flag;
+extern val qsappend : mod_rewrite_flag;
+extern val noescape : mod_rewrite_flag;
+extern val passthrough : mod_rewrite_flag;
+
+extern val mimeType : rewrite_arg -> mod_rewrite_flag;
+extern val redirectWith : redirect_code -> mod_rewrite_flag;
+extern val skip : int -> mod_rewrite_flag;
+extern val env : rewrite_arg -> rewrite_arg -> mod_rewrite_flag;
+
+extern val rewriteRule : no_spaces -> no_spaces -> [mod_rewrite_flag] -> [Vhost];
+{{See <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule">Apache
+  documentation for <tt>RewriteRule</tt></a>.}}
+
+extern val localProxyRewrite : no_spaces -> no_spaces -> proxy_port -> [Vhost];
+{{All requests matching the regular expression in the first argument are
+  redirected to another HTTPD running on localhost at the given port, generating
+  the new URI by substituting variables in the second argument as per Apache
+  mod_rewrite.}}
+