クエリ文字列の値を基にリダイレクトする


クエリ文字列の値に対応した別のサイトにリダイレクトしたい場合、Apacheではmod_rewriteを利用しますが、IISではURL Rewrite Moduleを利用します。

例えば、

http://www.windows-maniax.com/?category=iis

というアクセスを

http://iis.windows-maniax.com/

にリダイレクトさせるためには、以下のように設定します。

  1. URL Rewrite Module v2.0をインストールしていない場合はインストールします。
    >>> URL Rewrite Module (IIS.net)

    ※現時点(2009/09/19)ではv2.0はベータ版です。v1.1では不具合や機能不足なことがあります。
  2. IISマネージャを起動します。
  3. [接続]ウィンドウで、設定の対象となるサイトやディレクトリを選択します。
  4. [URL Rewrite]をクリックします。
  5. [操作]ウィンドウで[Add Rules]をクリックします。
  6. [Add rule(s)]ダイアログで”Inbound rules”の[Blank rule]を選択します。
  7. [Conditions]エリアの[Add Conditions]をクリックします。
  8. 各項目に以下のように入力します。
    Name ルールを識別する任意の名前
    ex.) rule1
    Match URL
    Requested URL Matches the pattern
    Using Regular Expressions
    Pattern .*
    Ignore Case チェックしません。
    Conditions
    Logical Grouping Match Any
    Track capture ~ チェックしません。
    Action
    Action Type Redirect
    Action properties
    Redirect type *1 http://{c:1}.windows-maniax.com/
    Append query string チェックします。
    Redirect URL *1 リダイレクトの理由を選択します。
    ex.)Found (302)

    *1 v2.0 Betaでは「Redirect type」と「Redirect URL」がこのように書かれていますが、誤植だと思います。

  9. [Conditions]エリアの[Add]をクリックし[Add Condition]ダイアログで以下のように入力します。
    Condition input {QUERY_STRING}
    Check if input string Matches the pattern
    Pattern ^category=([^&]*)
    Ignore Case チェックしません。
  10. 再び、[Conditions]エリアの[Add]をクリックし[Add Condition]ダイアログで以下のように入力します。
    Condition input {QUERY_STRING}
    Check if input string Matches the pattern
    Pattern \&category=([^&]*)
    Ignore Case チェックしません。
  11. [操作]ウィンドウで[適用]をクリックしてください。

以上

[このドキュメントに対応する環境]

  • OS
    • WIndows Server 2008
    • Windows Vista
    • Windows 7
  • IIS
    • 7.0
    • 7.5
[操作]ウィンドウで[Add Rules]をクリックします。


タグ: ,


コメントをどうぞ