Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)

[目次][用語][索引][前へ][次へ]

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

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

<この項の構成>
(1) URLパターンの種類
(2) 適用される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パターンの拡張子について,大文字小文字は区別されないで判定されます。