Rewrite-dispatch
From Resin 3.0
Line 13: | Line 13: | ||
=== Escaping === | === Escaping === | ||
− | Since the rewrite rules are written in Resin's XML configuration files, XML escaping rules apply. In particular a & character must be escaped | + | Since the rewrite rules are written in Resin's XML configuration files, XML escaping rules apply. In particular a & character must be escaped with & |
== 302 Redirecting a URL == | == 302 Redirecting a URL == |
Revision as of 21:07, 10 April 2006
The <rewrite-dispatch> directive rewrites and dispatches rules similar to the Apache mod_rewrite module. It can appear in the <host> or the <web-app> directives.
Contents |
Overview
The <rewrite-dispatch> directive tries each sub-directive in order for a regular expression match. The first matching directive redirects the request.
<rewrite-dispatch> may occur in a <host> or in a <web-app>.
Starting with Resin 3.0.19, <rewrite-dispatch> may also occur in the <server> block. The regexp in that case will be the entire URL, not just the path portion.
Escaping
Since the rewrite rules are written in Resin's XML configuration files, XML escaping rules apply. In particular a & character must be escaped with &
302 Redirecting a URL
To redirect a URL with a HTTP 302 redirect use:
<rewrite-dispatch> <redirect regexp='^/foo' target='/bar'/> </rewrite-dispatch>
301 Permanently Move a URL
To redirect a URL with a HTTP 301 moved-permanently use:
<rewrite-dispatch> <moved-permanently regexp='^/foo' target='/bar'/> </rewrite-dispatch>
(requires Resin 3.0.18)
Forwarding a URL
To internally forward a URL to a target using the Servlet forward() call use:
<rewrite-dispatch> <forward regexp='^/foo' target='/bar'/> </rewrite-dispatch>
403 Forbidden
To send a HTTP 403 forbidden message for a URL, use:
<rewrite-dispatch> <forbidden regexp="^/foo"/> </rewrite-dispatch>
404 Not Found
To send a HTTP 404 Not Found message for a URL, use:
<rewrite-dispatch> <not-found regexp="^/foo"/> </rewrite-dispatch>
410 Gone
To send a HTTP 410 Gone message for a URL, use:
<rewrite-dispatch> <gone regexp="^/foo"/> </rewrite-dispatch>