Version: 9.4.30.v20200611 |

Moved Context Handler
Previous | Chapter 18. Provided Servlets, Filters, and Handlers Home | Next

##### Contact the core Jetty developers at www.webtide.com

private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services for sponsored feature development

## Moved Context Handler

### Info

- Classname: `org.eclipse.jetty.server.handler.MovedContextHandler`
- Maven Artifact: org.eclipse.jetty:jetty-server
- Javadoc: http://www.eclipse.org/jetty/javadoc/9.4.30.v20200611/org/eclipse/jetty/server/handler/MovedContextHandler.html

### Usage

You can use the `MovedContextHandler` to relocate or redirect a context that has changed context path and/or virtual hosts.

You can configure it to permanently redirect the old URL to the new URL, in which case Jetty sends a Http Status code of 301 to the browser with the new URL. Alternatively, you can make it non-permanent, in which case Jetty sends a 302 Http Status code along with the new URL.

In addition, as with any other context, you can configure a list of virtual hosts, meaning that this context responds only to requests to one of the listed host names.

Suppose you have a context deployed at `/foo`, but that now you want to deploy at the root context `/` instead.

- First you reconfigure and redeploy the context on Jetty.
- Next you need a way to redirect all the browsers who have bookmarked `/foo` to the new path. You create a new context xml file in `{$jetty/.base}/webapps` and configure the `MovedContextHandler` to do the redirection from `/foo` to `/`.

Below is an example. This is a permanent redirection, which also preserves `pathinfo` and query strings on the redirect:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">

    <Configure class="org.eclipse.jetty.server.handler.MovedContextHandler">
      <Set name="contextPath">/foo</Set>
      <Set name="newContextURL">/</Set>
      <Set name="permanent">true</Set>
      <Set name="discardPathInfo">false</Set>
      <Set name="discardQuery">false</Set>

      <Set name="virtualHosts">
        <Array type="String">
              <Item>209.235.245.73</Item>
              <Item>127.0.0.73</Item>
              <Item>acme.org</Item>
              <Item>www.acme.org</Item>
              <Item>server.acme.org</Item>
        </Array>
      </Set>
    </Configure>

Previous | Top | Next
IP Access Handler | Home | Shutdown Handler

See an error or something missing? Contribute to this documentation at Github!(Generated: 2020-06-11)