Url Rewrite Filterはその名の通り、URLの書き換えを行うサーブレットフィルタだ。インストールは簡単で、urlrewrite-x.x.x.jar (x.x.xの部分はバージョン番号)をWebアプリケーションのWEB-INF/libフォルダに配置し、web.xmlに以下のフィルタ定義を追加する。

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

あとはルール定義ファイル(デフォルトでは/WEB-INF/urlrewrite.xml)に後述の書き換えルールを記述していけばよい。

なお、Webアプリケーションの/rewrite-statusにアクセスすると、以下のようなステータス画面が表示される。web.xmlのフィルタ定義部分で要素を指定することで、ステータス表示機能を無効にしたり、ステータス表示ページのパスや閲覧を許可するホスト名などを設定することができる。また、ルール定義ファイルのパスやルール定義ファイルを自動的に再ロードするかどうかといった設定を行うことも可能だ。

Webアプリケーションの/rewrite-statusにアクセスすると設定画面が表示される

本稿ではApache Tomcat 5.5.23に執筆時点の最新版であるUrl Rewrite Filter 3.0.4をインストールしたものとして解説を行う。