コンテンツルールのモード

概要

コンテンツルールには3種類のモードがあり、用途に応じて選択できます。

デフォルトモード
スルーモード
リダイレクトモード

モードによって使用できるタグが違いますので、コンテンツルールの要素一覧および属性一覧を確認ください。
ここでは基本的な記述例を説明します。

形式

コンテンツルールはcontentsRule.xmlで設定をします。

端末からのリクエストが設定したコンテンツルールに該当した場合、どのような処理を行なうか指定できます。

デフォルトモードとスルーモードのコンテンツルールを記述する際には<ContentsRule>タグを用い、リダイレクトモードのコンテンツルールを記述する際には<RedirectRule>タグを用います。
各<ContentsRule>タグおよび<RedirectRule>タグで囲まれた部分が1つのルールになります。

contentsRule.xml

<ContentsRuleList>
    <!-- 1つ目のルール-->
    <ContentsRule>
      ・・・
    </ContentsRule>

    <!-- 2つ目のルール-->
    <ContentsRule>
      ・・・
    </ContentsRule>

    <!-- リダイレクトモードの場合-->
    <RedirectRule>
      ・・・
    </RedirectRule>

    <!-- 以降ContentsRuleもしくはRedirectRuleの繰り返し-->

</ContentsRuleList>

デフォルトモード

概要

端末ごとにコンテンツを変換・出力します。

設定例

下記に、いくつか使用例をご紹介します。

例1)リクエスト変換の設定
contentsRule.xml

<ContentsRule>
  <ConditionHost></ConditionHost>
  <ConditionPort></ConditionPort>
  <ConditionDir>/test</ConditionDir>

  <Host>x-servlet.com</Host>
  <Port>80</Port>
  <PreDir>/flexfirm</PreDir>
  <DefaultEncoding>Shift_JIS</DefaultEncoding>
</ContentsRule>

このように設定すると、下記のようなリクエスト変換が行なわれます。

  http://ksk.co.jp/test/index.html
というリクエストが端末から来た場合は
  http://x-servlet.com:80/flexfirm/index.html
をWebサーバから取得します。

  http://ksk.co.jp/test/dir/file.html
というリクエストが端末から来た場合は
  http://x-servlet.com:80/flexfirm/dir/file.html
をWebサーバから取得します。

例2)ページ分割の設定
contentsRule.xml

<ContentsRuleList>
  <ContentsRule>
  <Host>x-servlet.com</Host>
  <Port>80</Port>
  <DefaultEncoding>Shift_JIS</DefaultEncoding>
  <Attribute name="noSeparate">true</Attribute>
</ContentsRule>

このように設定すると、x-Servletはページ分割を行ないません。

例3)ページ分割時のリンクの文字列の設定
contentsRule.xml

<ContentsRule>
  <Host>x-servlet.com</Host>
  <Port>80</Port>
<DefaultEncoding>Shift_JIS</DefaultEncoding>
<Attribute name="nextLinkMessage">次のページへ</Attribute>
<Attribute name="prevLinkMessage">前のページへ</Attribute>
</ContentsRule>

こうすることで、ページ分割された時のリンクの文字列を設定する事ができます。

注意

  • <ContentsRule>で記述された<Host>は接続先ホスト数のカウント対象となります。複数の接続先ホストを設定する場合は「接続先ホストを増やしたい」を参照ください。

スルーモード

概要

コンテンツ変換したくない場合にこのモードを使用します。
設定方法は基本的にはデフォルトモードと同じですが、<Attribute name="className">で「jp.co.flexfirm.xproxy.control.rule.ContentsRule_Through」を設定する必要があります。

設定例

例)
contentsRule.xml

<ContentsRule>
  <ConditionUAGroup>PC</ConditionUAGroup>
  <Host>x-servlet.com</Host>
  <Port>80</Port>
  <DefaultEncoding>Shift_JIS</DefaultEncoding>
  <Attribute name="className">jp.co.flexfirm.xproxy.control.rule.ContentsRule_Through</Attribute>
</ContentsRule>

上記の設定の場合はスルーモードとなり、PCからのリクエストに対してはコンテンツ変換をせずに元コンテンツを返します。

注意

リダイレクトモード

概要

端末にリダイレクトレスポンスを返すコンテンツルールです。
このルールを用いた場合、リクエスト変換を行って取得したリダイレクト先URLにリダイレクトするようなレスポンスを端末に返します。

例えば全ての端末に対してサービスをシングルURIで提供したいが、特定の端末からのアクセスの場合は別のホストにリダイレクトさせ、そこでサービスを提供したいような場合に使用します。

設定例

例1)
contentsRule.xml

<RedirectRule>
  <ConditionHost>x-servlet.co.jp</ConditionHost>
  <ConditionFile>index.html</ConditionFile>
  <Host>x-servlet.com</Host>
  <Port>80</Port>
  <File>login.html</File>
</RedirectRule>

上記の設定の場合、
  http://x-servlet.co.jp/test/index.html
というリクエストが端末から来た場合は
  http://x-servlet.com:80/test/login.html
へリダイレクトされます。

<ConditionFile>にはワイルドカードとして「*」が使用でき、後方一致の指定ができます。

例2)
contentsRule.xml

<RedirectRule>
  <ConditionFile>*file.html</ConditionFile>
  <Host>192.168.3.122</Host>
  <Port>80</Port>
  <File>index.html</File>
</RedirectRule>

上記の設定の場合、
  http://x-servlet.com/afile.html
というリクエストが端末から来た場合は
  http://x-servlet.com/aindex.html
へリダイレクトされます。

上記例2のように、<ConditionFile>にワイルドカードが指定されるとリダイレクト先は<ConditionFile>で適用されたワイルドカード+<File>で指定された値になります。

注意

  • リダイレクトモードはコンテンツの変換を行うわけではないので、コンテンツ変換に関わる<DefaultEncoding><fakeScheme><fakeHost><fakePort>は使用できません。
  • <RedirectRule>で記述された<Host>は接続先ホスト数のカウントの対象とはなりません。
TOP