Rewrite-dispatch

From Resin 3.0

(Difference between revisions)
Jump to: navigation, search
 
Line 1: Line 1:
 
[[Category:Configuration]]
 
[[Category:Configuration]]
  
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.
+
Resin's <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.
  
 
== Overview ==
 
== Overview ==

Latest revision as of 08:55, 14 January 2009


Resin's <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

[edit] 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.

[edit] 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 &amp;

[edit] 302 Redirecting a URL

To redirect a URL with a HTTP 302 redirect use:

<rewrite-dispatch>
  <redirect regexp='^/foo' target='/bar'/>
</rewrite-dispatch>

[edit] 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)

[edit] 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>

[edit] 403 Forbidden

To send a HTTP 403 forbidden message for a URL, use:

<rewrite-dispatch>
  <forbidden regexp="^/foo"/>
</rewrite-dispatch>

[edit] 404 Not Found

To send a HTTP 404 Not Found message for a URL, use:

<rewrite-dispatch>
  <not-found regexp="^/foo"/>
</rewrite-dispatch>

[edit] 410 Gone

To send a HTTP 410 Gone message for a URL, use:

<rewrite-dispatch>
  <gone regexp="^/foo"/>
</rewrite-dispatch>
Personal tools