次の表に、Isapi クラスで使用できるセクションのリストを示します。
解説 1
受信 http 要求は、http://www.myserver.com/ {url}?{query} として表すことができます。このドキュメントでは、{url} のことを http 要求の "url" 部分と呼び、{query} のことを http 要求の "クエリ" 部分と呼びます。この命名規則を使用すると、"url" セクションは {url} と比較され、"query" セクションは {query} と比較されると言い表すことができます。
たとえば次のルールは、IIS が http 要求の http:// www.myserver.com/search/abc.exe?subject=wildlife&environment=ocean を受信した場合に呼び出されます。
Rule {
Class Isapi
Id 4001
level 1
url { Include "*abc*" }
time { Include "*" }
application { Include "*"}
user_name { Include "*" }
directives -c -d isapi:request
}
このルールが呼び出されるのは、{url} が /search/abc.exe であることが、"url" セクションの値 (すなわち abc) と一致するためです。
解説 2
比較が行われる前に、要求をエンコードやエスケープ シーケンスでいっぱいにすることができないように、"url" セクションと "query" セクションがデコードされて正規化されます。
解説 3
"url" セクションと "query" セクションのために最大長の制限を定義できます。これらのセクションに文字数
のパラメータを追加すると、{url} や {query} の文字数が指定した数より多い場合のみ、ルールを一致させることができます。たとえば次のルールは、要求の url 部分に、"abc" が含まれていて 500 を超える文字がある場合にのみ一致します。
Rule {
Class Isapi
Id 4001
level 1
url { Include "*abc*;500" }
time { Include "*" }
application { Include "*"}
user_name { Include "*" }
directives -c -d isapi:request}
}
解説 4
1 つのルールには、オプションのセクションである url、query、および method のうち、少なくとも 1 つを含める必要があります。