URLParamFilter Version 1.2 環境変数
APPENDIX
IIS で GET メソッドの引数ではなく URL 自体に値を持たせることを可能にするための ISAPI フィルタです。
URL の文字数制限も可能です。
環境変数
はじめに
注意事項
ここでいう 「環境変数」 とは、いわゆる HTTP ヘッダに付加される情報のことを言います。
付加されたヘッダを実際の ASP スクリプトで参照したい場合には、"HTTP_" を先頭に付加して、さらに途中途中に現れる "-" を "_" に置き換える必要があります。
複数の値を返す変数の取り扱い
URLParamFilter の返す環境変数の中には、複数の結果がまとめられているものもあります。
残念ながら ServerVariables は .Count や配列を使って分離するということができないようですので、たとえば ServerVariables("HTTP_URLPARAM_OPTIONS")(0) というように取得することはできません。
複数の値はそれぞれがカンマ ( , ) によって区切られていますので、Split 命令などを使ってプログラマが分離する必要があります。
環境変数一覧
NAME | NOTE | VALUE (例) |
---|---|---|
URLPARAM | URLParamFilter がフィルタ処理をしたかを示す (1:フィルタした, 0:フィルタしなかった, -1: 設定不足等でフィルタ処理できなかった) | 1 / 0 / -1 |
URLPARAM-VERSION | URLParamFilter のバージョン | 1.1 |
URLPARAM-BUFFER-SIZE | 現在有効な、内部文字バッファの大きさ | 200 |
URLPARAM-VIRTUALHOST | 仮想ホスト用の設定を参照している場合は、その登録名 | program.station.ez-net.jp |
URLPARAM-CASE-SENSITIVE | 大文字小文字を区別する設定になっているか | 1 / 0 |
URLPARAM-LENGTH-URL | URL の文字数 | 93/NONE |
URLPARAM-LENGTH-ARGS | URL の引数部分の文字数 | 12/128 |
URLPARAM-TYPE | 種類 - 要求された URL の拡張子が入る | asp |
URLPARAM-TARGET | 標的 - 要求された URL のファイル名が入る | 0045 ※ 複数の可能性あり |
URLPARAM-OPTIONS | 引数 - 要求された URL の冗長部分 | notes, details, item ※ 複数の可能性あり |
URLPARAM-SOURCE | 変換される前の URL | /filter/notes/details/item/0045.asp |
URLPARAM-SOURCE-ARGS | 変換される前の URL についていた引数 | id=10 |
URLPARAM-SPECIAL | あらかじめ定められた固有の情報 | |
URLPARAM-MATCHES | * および ? と一致した文字 | ※ 複数の可能性あり |
URLPARAM-ID | フィルタの固有名 | FILTER-SAMPLE |
URLPARAM-SEPARATOR | 現在有効な、標的を分離する文字 | - |
URLPARAM-LIMITER | フィルタがカットされたかどうか | 1 / 0 |
URLPARAM-ERROR | 処理中にエラーが発生した場合に、ここにエラーメッセージが保存される |
環境変数の詳細
必ず付加されるもの
URLPARAM
URLParamFilter がフィルタ処理を行ったかどうかを示します。
1 が設定されていれば URLParamFilter がフィルタデータにそって URL の置き換え処理を行ったことを意味します。0 が設定されていれば逆に、フィルタデータに該当せずに置き換えがなされなかったことを意味します。
この値は文字数制限のリミッタ処理とは無関係ですので、リミッタが発動しても URL の置き換えがされなければ 0 を示します。
また、レジストリ設定が不適切だったりして正常にフィルタ処理を行うことができない場合は -1 が設定され、リミッタ処理を含む一切のフィルタ処理を行わずに IIS へ URL 処理を任せます。
URLPARAM-VERSION
動作している URLParamFilter のバージョン番号を示します。たとえば "1.1" のように、小数点入りで表現します。
基本的に付加されるもの (エラーでなければ付加されます)
URLPARAM-BUFFER-SIZE
URLParamFilter が使用する内部バッファサイズを示します。
このバッファを利用して URL のリミッタ処理やフィルタ処理を行いますので、これ以上の URL は取り扱わないことを意味します。
URLPARAM-LENGTH-URL
リミッタ処理が行われた後の URL 全体の文字数と、リミッタの最大文字数として設定されている値が記録されます。
リミッタ処理後の文字数と、最大文字数は、"/" で区切って表現します。たとえばリミッタ処理後に 100 文字で、最大文字数が 200 文字の場合には、 "100/200" となります。
最大文字数の指定がない場合、最大文字数表記は "NOLIMIT" となります。
URLPARAM-LENGTH-ARGS
リミッタ処理が行われた後の、GET メソッドの引数部分に位置する部分の、実際の文字数と許容される最大値が記録されます。
たとえばリミッタ処理後の引数文字数が 34 で、最大値として設定されている文字数が 64 であった場合は、 "34/64" となります。
最大文字数の指定がない場合、最大文字数表記は "NOLIMIT" となります。
URLPARAM-URL-LIMITER
リミッタ処理が行われた際に、リミッタが発動して URL がカットされた場合に 1 を示します。カットがなされなかった場合は 0 を示します。
URLPARAM-CASE-SENSITIVE
ホスト指定を、大文字小文字を区別するかどうかが設定されます。区別する設定の場合は 1 が、そうでなければ 0 が指定されます。
場合によっては付加されるもの
URLPARAM-VIRTUALHOST
URLParamFilter は仮想サイトごとに設定することが出来ます。
この環境変数に、適用している URLParamFilter の基本設定の名前が現れますので、設定が間違っていないかなどの確認ができます。 なお標準のサイト設定が適用されている場合には、このヘッダは付加されません。
フィルタリングが行われた際に付加されるもの
URLPARAM-TYPE
要求された URL の拡張子部分が入ります。
URLPARAM-TARGET
要求された URL のファイル名が入ります。
フィルタデータで Separator を設定していた場合には、ファイル名をその文字で分割した状態で記録されます。その場合はそれぞれがカンマで区切られます。
URLPARAM-OPTIONS
要求された URL のうち、フィルタデータの VirtualPoint 部分を除く、ディレクトリ部分が入ります。ディレクトリ部分は "/" ごとで分離され、それらはカンマで区切られます。
URLPARAM-SOURCE
変換される前の、要求された URL そのものを記録します。ただし GET メソッドの引数は含みません。この値を参照することで、もともとはどのような URL が要求されたのかを知ることができます。
URLPARAM-SOURCE-ARGS
変換される前の、要求された URL そのものから、GET メソッドの引数だけを取り出したものです。この値を参照することで、どのような引数が要求されたのかを知ることができます。
URLPARAM-SPECIAL
フィルタデータで設定されていた SpecialValue の値が入ります。
URLPARAM-MATCHES
URL のうち、フィルタデータの VirtualPoint で設定されていたワイルドカードに対応した部分が入ります。
複数のワイルドカードを使用していた場合には、それらがカンマで区切られた状態で記録されます。
URLPARAM-ID
フィルタデータで設定されていた Identifier の値が入ります。
URLPARAM-SEPARATOR
フィルタデータで設定されていた Separator の値です。
URLPARAM-TARGET がカンマ区切りの複数個で構成されていた場合、それらはもともと、ここの文字で連結されていたことになります。
エラー時に付加されるもの
URLPARAM-ERROR
URLParamFilter の各種処理時に、エラーが発生した場合はここにエラーメッセージが保存されます。