Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


5.3.2 URLパターンの種類と適用されるパターンの優先順位

リダイレクタのURLマッピングで指定できるURLパターンの種類,および適用されるパターンの優先順位について説明します。

〈この項の構成〉

(1) URLパターンの種類

リダイレクタのURLマッピングには次の4種類のURLパターンを指定できます。

(2) 適用されるURLパターンの優先順位

四つのURLパターンへのマッピングのうち,最優先されるURLパターンは,「完全パス指定」です。「完全パス指定」に一致しない場合,次に示す順序でパスの一致が判定され,適用されるURLパターンが決定します。

  1. 「完全パス指定」に一致しない場合

    「パス指定」「拡張子指定」「サフィックス指定」のうち,最長一致のものが適用されます。最長一致とは,先頭(「/」)から「*」の上位パスまでができるだけ長いものに一致することを示します。

    次のように二つのマッピングが定義されている場合を例に,説明します。

    マッピング定義:

    /examples/* worker1

    /examples/jsp/* worker2

    この場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用され,URLが"/examples/test/index.jsp"の場合にはworker1のマッピングが適用されます。

  2. 1.の条件に加えて,最長一致する「パス指定」「拡張子指定」「サフィックス指定」が複数存在する場合

    「パス指定」より,「拡張子指定」または「サフィックス指定」が優先されます。

    次のように二つのマッピングが定義されている場合を例に,説明します。

    マッピング定義:

    /examples/jsp/* worker1

    /examples/jsp/*.jsp worker2

    この場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用され,URLが"/examples/jsp/test.html"の場合にはworker1のマッピングが適用されます。

  3. 1.および2.の条件に加えて,最長一致する「拡張子指定」「サフィックス指定」が複数存在する場合

    あとに指定したURLパターンが優先されます。

    次のように二つのマッピングが定義されている場合を例に,説明します。

    マッピング定義:

    /examples/*.jsp worker1

    /examples/*jsp worker2

    この順番に指定されていた場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用されます。

    注意事項

    適用されるパターンの優先順位の判定に関する注意事項を次に示します。

    • リクエストURLにクエリ(URLの「?」以降の文字列)がある場合,その部分はURLパターンとの比較には使用されません。

      例:

      リクエストURLが"/examples/jsp/index.jsp?query=foo"の場合,比較に使用されるURLは"/examples/jsp/index.jsp"となります。

    • リクエストURLにパスパラメタ(URLの「;」以降の文字列)がある場合,その部分はURLパターンとの比較には使用されません。

      例:

      リクエストURLが"/examples/jsp/index.jsp;jsessionid=0000"の場合,比較に使用されるURLは"/examples/jsp/index.jsp"となります。

    • リクエストURLはパスの正規化をしてから,URLパターンとの一致が判定されます。

      例:

      リクエストURLが"/examples/../examples/./jsp//index.jsp"の場合,比較に使用されるURLは"/examples/jsp/index.jsp"となります。

    • URLパターンの正規化はしません。そのため,「./」,「../」などを含むURLパターンを定義しても,リクエストと一致することはありません。

    • Windowsの場合,「拡張子指定」のURLパターンの拡張子について,大文字小文字は区別されないで判定されます。