HeaderMatchドキュメントとuser.HeaderMatchドキュメントについて
HeaderMatchドキュメントについて
HeaderMatchドキュメントを使用すると、HTTPプロトコルの一部をインターネットサービスで処理し、セキュリティまたは相互運用性が確保されるように設定できます。
警告
HeaderMatchドキュメントはカスタマイズ可能ですが、カスタマーサポートまたはサービス担当部門から指示されない限り、製品に含まれているデフォルトのHeaderMatchドキュメントを使用することをお勧めします。HeaderMatchドキュメントに変更を加えると、システムのセキュリティやシステムへの接続性に深刻な影響がもたらされる可能性があります。
HeaderMatchドキュメントでは、以下の設定を実行できます。
・特定のOS、特定の種類もしくはバージョンのブラウザ、または特定の言語を使用しているユーザを専用のWebサイトまたはサイトのテンプレートに誘導する
・HTTPエラーメッセージを調整する
・MIMEコンテンツを調整して、MIMEタイプファイルの設定を無効にする
・インターネットサービスのスクリプト変数を設定する
・HeaderMatch SET変数を追加する
・[Standard]テンプレートセットのドロップダウンメニューで利用できるフォームの選択肢をカスタマイズする
・インターネットサービスで有効にする認証方法を制限する
注意
通常は、FirstClassサイトのデフォルト設定を使用していれば、HeaderMatchドキュメントの編集が必要になることはありません。
1つのサイトまたはサイト上の1つクラスタにつき、利用できるHeaderMatchドキュメントは1つだけです。
user.HeaderMatchドキュメントについて
user.HeaderMatchドキュメントは、HeaderMatchドキュメントをカスタマイズできるほど高度な知識を持った管理者が使用するためのもので、すべてのユーザの使用は想定していません。つまり、HeaderMatchドキュメントをカスタマイズしていない場合には、このファイルを使用する必要はありません。
アップグレードを実行すると、常にHeaderMatchドキュメントがデフォルトのHeaderMatchドキュメントに置き換えられるため、HeaderMatchドキュメントのカスタマイズ内容は失われてしまいます。user.HeaderMatchドキュメントは、管理者によるカスタマイズ内容を保存することによって、アップグレードを実行してもカスタマイズ内容が失われないようにするためのものです。
user.HeaderMatchがない場合に新規インストールまたはアップグレードを実行すると、空のuser.HeaderMatchドキュメントが作成されます。このドキュメントは現在のHeaderMatchドキュメントと同じ場所に保存され、HeaderMatchと同じルールと構文(このヘルプで詳しく説明)を使用します。
HeaderMatchドキュメントの構文
HeaderMatchドキュメントは、次のコメントおよびHeaderMatchコマンドで構成されています。
# |
コメントを示します。 先頭にシャープ記号(#)が付いた行はすべてコメントです。他の行はすべてコマンドです。 |
[ ] |
オプションの要素を示します。 |
* |
シーケンスが繰り返される可能性があることを示します。 |
+ |
シーケンスを1回以上繰り返す必要があることを示します。 |
( ) |
オプションのシーケンスまたは繰り返しシーケンスを明確に示すために使用できます。 |
赤色の太字 |
リテラルを示します。 |
< > |
一時的な値(後でファイルの中で定義されるか、または名前によって認識される構文)を示します。 |
注意
空白またはタブを含む文字列は二重引用符("")で囲んでください。
HeaderMatchドキュメントのコマンド
HeaderMatchコマンドは次の形式で記述します。
<スコープ>:[ IF <条件ステートメント> ] <動作> [ AND <動作> ]*
このうち、
・<スコープ>は、コマンドが適用される(1つ以上の)HTTPサイトまたは(1つ以上の)プラグインを定義します。
・<条件ステートメント>は、TRUEでなければ以降の動作が実行されないような1つ以上の条件を定義します。
・<動作>は、実行される動作を定義します。
スコープ
<スコープ>は、次のどれかの形式で記述します。
* |
このコマンドがすべてのサイトおよびプラグインに適用されることを示します。 |
PLUGIN.* |
このコマンドがすべてのサイト上のすべてのプラグインに適用されることを示します。 |
PLUGIN.<プラグイン名> |
このコマンドがすべてのサイト上の特定のプラグインに適用されることを示します。 |
SITE.<エイリアス名>[.<言語>] |
有効なプラグインがない場合にこのコマンドを実行するサイトを1つ指定します([複数サイトと複数言語の設定]フォームで指定した[エイリアス名]フィールドと[言語]フィールドの値を入力)。 |
<エイリアス名>[.<言語>] |
有効なプラグインがあるかどうかに関わらずこのコマンドを実行するサイトを1つ指定します([複数サイトと複数言語の設定]フォームで指定した[エイリアス名]フィールドと[言語]フィールドの値を入力)。 |
条件命令文
特定の条件下(特定の種類のブラウザだけで動作するテンプレートセットがある場合など)でコマンドを実行したい場合には、条件ステートメントを使用します。条件ステートメントは次の形式で記述します。
<条件ステートメント> := <条件> [ ( AND | OR ) <条件> ]*
このうち、
<条件>は、<secure-condition>、<method-condition>、<header-condition>、<cookie-condition>、<url-parameter-condition>、<autentication-condition>、<field-condition>、<variable-condition>、( <condition-statement> )のどれかになります。
注意
ANDとORは同じ優先度で、厳密に左から右に向かって評価されます。
必要に応じて、括弧を使用して演算順序を定義してください。
<secure-condition> := SECURE [ <比較演算子> ( 1 | 0 ) ] |
<比較演算子>は、==(等しい)または !=(等しくない)のどちらかです。 |
比較演算子を指定しない場合は「SECURE == 1」として条件が処理され、現在の接続がセキュア(SSL暗号化されている)であればTRUE、セキュアでなければFALSEと評価されます。 |
<method-condition> := METHOD <比較演算子> <HTTPメソッド> |
<比較演算子>は、==(等しい)または !=(等しくない)のどちらかです。 |
|
<header-condition> := [!] <HTTPヘッダ名> [<演算子> <ヘッダの値と照合する正規表現>] |
<HTTPヘッダ名>は、検証するHTTPヘッダの名前です(User-Agent、Referrerなど)。 |
末尾のコロン(:)はヘッダ名に含めないでください。 Request-URIは、擬似ヘッダ「URL」を使用して照合できます。 |
|
<演算子>は、==(等しい/含む)または !=(等しくない/含まない)のどちらかです。 |
<演算子>パラメータと<ヘッダの値と照合する正規表現>パラメータがない場合は、指定したHTTPヘッダが現在の要求に存在しているかどうかが評価されます。 先頭に感嘆符「!」を付けると、逆の検証結果になります。 |
|
<正規表現>では、Unixの「grep」プログラムと同じように、^$.[]+?*をメタ文字として使用します。 |
<cookie-condition> := COOKIE [!] <クッキー名> [<演算子> <クッキーの値と照合する正規表現>] |
<クッキー名>は、検証するクッキーの名前です。 |
<演算子>パラメータと<正規表現>パラメータがない場合は、指定したクッキーが現在の要求に存在しているかどうかが評価されます。 先頭に感嘆符「!」を付けると、逆の検証結果になります。 |
|
<演算子>は、==(含む)または !=(含まない)のどちらかです。 |
|
<正規表現>では、Unixの「grep」プログラムと同じように、^$.[]+?*をメタ文字として使用します。 |
<url-parameter-condition> := URLPARAM [!] <URLパラメータ名> [<演算子> <URLパラメータの値と照合する正規表現>] |
<URLパラメータ名>は、検証するURLパラメータの名前です。 |
<演算子>パラメータと<正規表現>パラメータがない場合は、指定したURLパラメータが現在の要求に存在しているかどうかが評価されます。 先頭に感嘆符「!」を付けると、逆の検証結果になります。 |
|
<演算子>は、==(含む)または !=(含まない)のどちらかです。 |
|
<正規表現>では、Unixの「grep」プログラムと同じように、^$.[]+?*をメタ文字として使用します。 |
<authentication-condition> := AUTH [ <比較演算子> ( 1 | 0 ) ] |
<比較演算子>は、==(等しい)または !=(等しくない)のどちらかです。 |
比較演算子を指定しない場合は「AUTH == 1」として条件が処理され、ユーザが認証されていればTRUE、認証されていなければFALSEと評価されます。 |
<field-condition> := <prefbag> <フィールドID>[.<インデックス>] <比較演算子> <値> |
<prefbag>には次のどれかを指定できます。 SITEPREF:[サイトの基本設定]フォームです(適切な[サイトの基本設定]フォームがない場合は[Global Site Preferences]フォーム)。 USERPREF:ユーザの[基本設定]フォームです。 PREF:指定された値をユーザの[基本設定]フォームで検索し、このフィールド用に指定された値がない場合には、[.sitepref(サイトの基本設定)]フォームで検索します。 |
|
|
<フィールドID>は、指定したユーザの[基本設定]フォームまたはサイトの基本設定]フォーム上のフィールドです。 |
|
|
<インデックス>は、フィールドのインデックスです。 |
<インデックス>を指定しない場合、インデックスはゼロ(0)とみなされます。 |
|
<比較演算子>には次のどれかを指定できます。 ==(等しい) !=(等しくない) <(より小さい) >(より大きい) <=(より小さいか、等しい) >=(より大きいか、等しい) |
|
|
<値>は、変数と比較する値です。 |
<値>にスペースまたはタブが含まれる場合は、二重引用符("")で囲む必要があります。 |
<variable-condition> := VAR <変数> <比較演算子> <値> |
<変数>は、HeaderMatchファイルで以前に定義したインターネットサービススクリプト変数の名前です。 |
|
|
<比較演算子>には次のどれかを指定できます。 ==(等しい) !=(等しくない) <(より小さい) >(より大きい) <=(より小さいか、等しい) >=(より大きいか、等しい) |
|
|
<値>は、変数と比較する値です。 |
<値>にスペースまたはタブが含まれる場合は、二重引用符("")で囲む必要があります。 |
動作
<動作>は、実際に行われるようにする内容です。次の2種類の動作があります。
・<set-動作>
・<var-動作>
それぞれの動作については、以降のヘルプを参照してください。
|