リダイレクタのURLマッピングには次の4種類のURLパターンを指定できます。
- 完全パス指定
完全に一致するパターンです。
- 例:
- URLパターンが"/examples/jsp/index.jsp"で,URLが"/examples/jsp/index.jsp"の場合,一致となります。
- パス指定
パスが一致するパターンです。
- 例:
- URLパターンが"/examples/*"で,URLが"/examples/jsp/index.jsp"などの場合,一致となります。
- 拡張子指定
拡張子が一致するパターンです。指定されたパス以下のすべての階層に適用されます。
- 例:
- URLパターンが"/examples/*.jsp"で,URLが"/examples/jsp/index.jsp"などの場合,一致となります。
- サフィックス指定
サフィックスが一致するパターンです。指定されたパス以下のすべての階層に適用されます。
- 例:
- URLパターンが"/examples/servlet/*Servlet"で,URLが"/examples/servlet/HelloServlet"などの場合,一致となります。
これらの四つのURLパターンへのマッピングのうち,最優先されるURLパターンは,「完全パス指定」です。「完全パス指定」に一致しない場合,次に示す順序でパスの一致が判定され,適用されるURLパターンが決定します。
- 「完全パス指定」に一致しない場合
「パス指定」「拡張子指定」「サフィックス指定」のうち,最長一致のものが適用されます。最長一致とは,先頭("/")から"*"の上位パスまでができるだけ長いものに一致することを示します。
次のように二つのマッピングが定義されている場合を例に,説明します。
- マッピング定義:
- /examples/* worker1
- /examples/jsp/* worker2
この場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用され,URLが"/examples/test/index.jsp"の場合にはworker1のマッピングが適用されます。
- 1.の条件に加えて,最長一致する「パス指定」「拡張子指定」「サフィックス指定」が複数存在する場合
「パス指定」より,「拡張子指定」または「サフィックス指定」が優先されます。
次のように二つのマッピングが定義されている場合を例に,説明します。
- マッピング定義:
- /examples/jsp/* worker1
- /examples/jsp/*.jsp worker2
この場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用され,URLが"/examples/jsp/test.html"の場合にはworker1のマッピングが適用されます。
- 1.および2.の条件に加えて,最長一致する「拡張子指定」「サフィックス指定」が複数存在する場合
あとに指定したURLパターンが優先されます。
次のように二つのマッピングが定義されている場合を例に,説明します。
- マッピング定義:
- /examples/*.jsp worker1
- /examples/*jsp worker2
この順番に指定されていた場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用されます。
- 注意
- URLパターンでの注意事項を次に示します。
- URLパターンの先頭に"/"以外を指定した場合,そのマッピングは無視されます。
- 指定できる"*"は一つだけです。
- "*"の前は"/"である必要があります。
- 同じURLパターンのマッピングを複数記述しないでください。複数記述したときの動作は保証できません。