Rewrite-dispatch
From Resin 3.0
Line 7: | Line 7: | ||
The <rewrite-dispatch> directive tries each sub-directive in order for a [[regular expression]] match. The first matching directive redirects the request. | 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>. | + | <rewrite-dispatch> may occur in a <[[host]]> or in a <[[web-app]]>. |
− | In 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. | + | In 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. |
== 302 Redirecting a URL == | == 302 Redirecting a URL == |
Revision as of 18:32, 29 March 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>.
In 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.
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>