ADC

例 6: Apache リライトモジュールルールを移行する

Example Inc. は現在、Apache rewrite モジュールを使用して Web サーバーに送信された検索リクエストを処理し、リクエスト URL の情報に基づいてそれらのリクエストを適切なサーバーにリダイレクトしています。Example Inc. は、これらのルールをNetScalerプラットフォームに移行することでセットアップを簡素化したいと考えています。

Example が現在使用しているいくつかの Apache リライトルールを以下に示します。これらのルールは、SiteID 文字列がない場合や SiteID 文字列がゼロ (0) の場合は検索リクエストを特別な結果ページにリダイレクトし、これらの条件に当てはまらない場合は標準結果ページにリダイレクトします。

以下は、現在の Apache 書き換えルールです。

  • RewriteCond %{REQUEST_FILENAME} ^/search$ [NC]
  • RewriteCond %{QUERY_STRING} !SiteId= [OR]
  • RewriteCond %{QUERY_STRING} SiteId=0
  • RewriteCond %{QUERY_STRING} CallName=DisplayResults [NC]
  • RewriteRule ^.*$ results2.html [P,L]
  • RewriteCond %{REQUEST_FILENAME} ^/search$ [NC]
  • RewriteCond %{QUERY_STRING} CallName=DisplayResults [NC]
  • RewriteRule ^.*$ /results.html [P,L]

これらのApacheリライトルールをNetScalerに実装するには、次の表の値を使用してリライトアクションを作成します。

[アクション名] 書き換えアクションのタイプ ターゲットリファレンスを選択する式 置換テキストの文字列式
Action-Rewrite-Display_Results_NulSiteID REPLACE HTTP.REQ.URL “/results2.html”
Action-Rewrite-Display_Results REPLACE HTTP.REQ.URL “/results2.html”

次に、以下の表に示す値を使用してリライトポリシーを作成します。

ポリシー名 [アクション名] 未定義のアクション
Policy-Rewrite-Display_Results_NulSiteID Action-Rewrite-Display_Results_NulSiteID NOREWRITE HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).EQ(“/search”) && (!HTTP.REQ.URL.QUERY.CONTAINS(“SiteId=”) || HTTP.REQ.URL.QUERY.CONTAINS(“SiteId=0”) || HTTP.REQ.URL.QUERY.SET_TEXT_MODE(IGNORECASE).CONTAINS(“CallName=DisplayResults”))
Policy-Rewrite-Display_Results Action-Rewrite-Display_Results NOREWRITE HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).EQ(“/search”) || HTTP.REQ.URL.QUERY.SET_TEXT_MODE(IGNORECASE).CONTAINS(“CallName=DisplayResults”))

最後に、書き換えポリシーをバインドして、最初のポリシーに優先順位を 600、2 番目のポリシーに優先度 700 を割り当て、両方のバインディングの goto 式を NEXT に設定します。

NetScaler ADCは、Apache書き換えモジュールのルールが移行される前のWebサーバーと同じようにこれらの検索要求を処理するようになりました。

例 6: Apache リライトモジュールルールを移行する

この記事の概要