Rewrite-dispatch

From Resin 3.0

(Difference between revisions)
Jump to: navigation, search
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>
Personal tools