ファイル名をクエリストリングの値に変換する


アドレスに指定されたhtmlファイルにアクセスしているように見せかけて、そのファイル名をCGIなどのGETメソッドにQuery Stringの変数値として渡すように変換することができます。

例えば、http://www.windows-maniax.com/script/value1.htmlにアクセスしてもらうことで、http://www.windows-maniax.com/script.aspx?condition=value1にリライトします。

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

    ※現時点(2009/12/22)ではv2.0はRC2です。v1.1では不具合や機能不足なことがあります。
  2. IISマネージャを起動します。
  3. [接続]ウィンドウで、設定の対象となるサイトやディレクトリを選択します。
  4. [URL Rewrite]をクリックします。
  5. [操作]ウィンドウで[Add Rules]をクリックします。
  6. [Add rule(s)]ダイアログで”Inbound rules”の[Blank rule]を選択します。
  7. 各項目に以下のように入力します。
    Name ルールを識別する任意の名前
    ex.) rule1
    Match URL
    Requested URL Matches the pattern
    Using Regular Expressions
    Pattern ^(.+)/(.+)¥.html$
    ※ディレクトリ名のスクリプトファイルにhtmlファイル名の値を渡す場合の例
    Ignore Case チェックしません。
    Conditions
    No conditions definedのままでOKです。
    Action
    Action Type Rewrite
    Action properties
    Rewrite URL {R:1}.aspx?condition={R:2}
    ※GETで変数(condition)を取得するASP.NETプログラムに処理をさせる場合の例
    Append query string チェックしません。
    Stop processing ~ 他のRewrite Ruleを適用する可能性がない場合のみチェックします。
    そうでない場合はチェックしてはいけません。
  8. [操作]ウィンドウで[適用]をクリックしてください。

以上

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

  • OS
    • WIndows Server 2008
    • Windows Vista
    • Windows 7
  • IIS
    • 7.0
    • 7.5


タグ: ,


コメントをどうぞ