Analog 5.91beta1: 包含と除外HOSTEXCLUDE mycomputer.myisp.comは、そのコンピュータからのすべての要求を統計から除外します。 (特定のレポートの対象から、ある項目を除外する方法については、以下を参照してください。)
項目を包含するか除外するかを決定するルールは、以下のようになっています。 ある項目に適用されるすべてのINCLUDE と EXCLUDE コマンドは、順番に評価され、その項目が包含されるか除外されるかは、マッチした最後のコマンドにより決まります。どのコマンドにもマッチしなかった項目については、最初のコマンドが除外だった場合は包含され、最初のコマンドが包含だった場合は除外されます。 例えば、以下の設定
FILEINCLUDE /~sret1/* FILEEXCLUDE /~sret1/backgammon/*,/~sret1/analog/* FILEINCLUDE /~sret1/backgammon/*.gifは、わたし(sret1)のファイルだけを対象とするが、backgammon (訳注: ゲームの一種)と Analog のファイルは除外する。ただし、backgammon ディレクトリにある GIF ファイルについては包含するという意味になります。 一方、
FILEEXCLUDE /~sret1/*/img/*は、わたしのディレクトリにある画像ファイル(訳注: img は通常画像(image)の略語として使われる)以外のすべてのファイルを解析するという意味になります。 (包含と除外がどうなっているのかわからなくなっても、SETTINGS ONを記述することで、いつでも現在指定したオプションがどのようになっているかを確認することができることを覚えておくとよいでしょう) 包含と除外の記述については、ワイルドカードを幾つでも使えます。また(スペースを入れずに)コンマで区切ることで、幾つでも併記することができます。
すべての包含と除外コマンドを以下に示します: HOSTINCLUDEとHOSTEXCLUDE; FILEINCLUDEとFILEEXCLUDE; BROWINCLUDEとBROWEXCLUDE; REFINCLUDEとREFEXCLUDE; USERINCLUDEとUSEREXCLUDE; VHOSTINCLUDEとVHOSTEXCLUDE; STATUSINCLUDEとSTATUSEXCLUDE。
包含と除外の処理は、エイリアス(置換)を行なった後で行なわれますので、指定はエイリアス後の文字列で行なう必要があります。 (出力エイリアスコマンドが記述されていない場合、これは出力される各項目の文字列になります)
時には、ある項目が行に含まれていないといった場合もあります。これは、行にその項目用のフィールドが存在していない場合や、ブラウザがそうした情報を送信しない場合、また存在はしているが不正になっている場合などが考えられます。こうした行を包含したり、除外したりするには、INCLUDE や EXCLUDE コマンドに特別な空のエントリを記述することで行ないます。 例えば
USERINCLUDE jim USERINCLUDE ""は、 jim というユーザと、ユーザが含まれていない行を包含するという記述になります。
ファイルにsearch argumentsが含まれている場合、REQINCLUDE と REFINCLUDE は、やや直観的ではない動きをすることがあります。
コマンドの左側の引数の先頭に「REGEXP:」や「REGEXPI:」をつけることで、包含や除外コマンドの引数に正規表現を使うことが可能になります。これについてはエイリアスの章で記述したので、詳細についてはそちらを参照してください。なお正規表現の指定は、コンマで区切られたリスト単位ではなく、行全体に対して適用されます。
HOSTINCLUDE 131.111.20.18 # 1個の IP アドレス HOSTINCLUDE 131.111.20.* # ワイルドカード HOSTINCLUDE 131.111.20 # 上記と同じ意味 HOSTINCLUDE 131.111.20-23 # クラス C アドレスの範囲 HOSTINCLUDE 131.111.20.18/23 # サブネットマスク
STATUSINCLUDE 200-206,304,500-は、ステータスコードが 200-206、304、500以上の行のみを対象とするという意味になります。
ステータスコード304(変更なし)を、リクエストレポート中に現われないように除外しようとする人がいますが、もっとよい方法があります。デフォルトで、Analog は ステータスコード304を成功したリクエストとして扱います。これは、ユーザに対してはすでにキャッシュされているドキュメントが提供されていると考えられるためです。しかし、以下のコマンドにより、これをリダイレクトされたリクエストとして扱うことができます。
304ISSUCCESS OFF大部分の人にとっては、これは誤ったオプションです。というのもユーザにとっては、コード 304 はコード 200 と同じ意味を持つからです。なお、重ねていいますが、この意味を理解していないのであれば、デフォルトのままにしておいてください。
FROM 990701 TO 000615:1300さらに、各項目の先頭に + や - を付加することで、プログラムが実行された時刻からの相対時刻を表すこともできます。この場合、2桁以上の日を指定することも可能です。この表記を使うことで、以下のような設定が可能になります。
FROM -01-00+01 # 昨年度の明日の日付から
TO -00-0131 # 先月の終りまで (先月の最終日が 31 日でない
# 場合でも大丈夫です)
FROM -00-00-112
TO -00-00-01 # 最近 16 週間の統計
FROM -00-00-00:-06+01 # 最近 6 時間の統計
FROM および TO コマンドに対応するものとして、+F および +T というコマンドラインのオプションがあります。例えば、 +T-00-00-01:1800 は昨日の午後 6 時までの統計を行ないます。
なお、-F と -T は、FROM や TO の記述を無効にします。FROM OFF と TO OFF も同様です。
例えば、以下のコマンド
REFREPEXCLUDE http://your.site.com/*は、「リンク元 URL レポート」からサイト内部のリンク元を除外しますが、「不成功リンク元レポート」、「リンク先サイトレポート」などからは除外しませんし (これらのレポートから除外したい場合は、各々 FAILREFEXCLUDE と REFSITEEXCLUDE などを記述する必要があります)、REFEXCLUDE コマンドと同様に、これらのリンク元が記録されたログファイルの行を別の解析の対象から除外するものでもありません。
すべての包含、除外コマンドを以下に示します: REQINCLUDE と REQEXCLUDE; REDIRINCLUDE と REDIREXCLUDE; FAILINCLUDE と FAILEXCLUDE; TYPEINCLUDE と TYPEEXCLUDE; DIRINCLUDE と DIREXCLUDE; HOSTREPINCLUDE と HOSTREPEXCLUDE; REDIRHOSTINCLUDE と REDIRHOSTEXCLUDE; FAILHOSTINCLUDE と FAILHOSTEXCLUDE; DOMINCLUDE と DOMEXCLUDE; ORGINCLUDE と ORGEXCLUDE; REFREPINCLUDE と REFREPEXCLUDE; REFSITEINCLUDE と REFSITEEXCLUDE; SEARCHQUERYINCLUDE と SEARCHQUERYEXCLUDE; SEARCHWORDINCLUDE と SEARCHWORDEXCLUDE; INTSEARCHQUERYINCLUDE と INTSEARCHQUERYEXCLUDE; INTSEARCHWORDINCLUDE と INTSEARCHWORDEXCLUDE; REDIRREFINCLUDE と REDIRREFEXCLUDE; FAILREFINCLUDE と FAILREFEXCLUDE; BROWSUMINCLUDE と BROWSUMEXCLUDE; BROWREPINCLUDE と BROWREPEXCLUDE; OSINCLUDE と OSEXCLUDE; VHOSTREPINCLUDE と VHOSTREPEXCLUDE; REDIRVHOSTREPINCLUDE と REDIRVHOSTREPEXCLUDE; FAILVHOSTREPINCLUDE と FAILVHOSTREPEXCLUDE; USERREPINCLUDE と USERREPEXCLUDE; REDIRUSERREPINCLUDE と REDIRUSERREPEXCLUDE; FAILUSERINCLUDE と FAILUSEREXCLUDE。
出力エイリアスを使っている場合、これらの包含と除外コマンドは、エイリアス適用前の引数に対して適用されます。 (反対に、通常の INCLUDE および EXCLUDE コマンドは、エイリアス適用後の引数に対して適用されます。)
すべてのディレクトリ名は、スラッシュ(/)で終わりますので、DIRINCLUDE、DIREXCLUDE、REFSITEINCLUDE、REFSITEEXCLUDEでは、記述がなくても、暗黙のうちにスラッシュを付加します。そのため、以下のような場合に、混乱を引き起こしてしまうことがあります。
REFSITEEXCLUDE http://my.host.com/* # おそらく意図したようには機能しないは、参照元サイトレポートから、http://my.host.com/ のサブディレクトリを除外しますが、サイト自身は除外しません。サイトを完全に除外するには、
REFSITEEXCLUDE http://my.host.com/と記述します。
INCLUDEとEXCLUDE コマンドの一部では、pagesというキーワードを使うこともできます。よく用いられるコマンドである
REQINCLUDE pagesは、リクエストレポートに、ページ(page)のみを包含するようにします。
PAGEINCLUDE *.asp PAGEEXCLUDE /sret1.htmlこの例では、*.aspはページとみなされますが、/sret1.htmlはページとはみなされません。(ファイルにsearch argumentsが含まれている場合、PAGEINCLUDE および PAGEEXCLUDE は、ファイル名のうちクエスチョンマーク(?)の前の部分だけを評価します。)
REQLINKINCLUDE pages,*.pdfは、リクエストレポート内のページと PDF ファイルに対するリンクを作成します。 LINKINCLUDE系のすべてのコマンドを以下に示します: REQLINKINCLUDE と REQLINKEXCLUDE (リクエストレポート)、REDIRLINKINCLUDE と REDIRLINKEXCLUDE (リダイレクトレポート)、FAILLINKINCLUDE と FAILLINKEXCLUDE (Failure Report)、REFLINKINCLUDE と REFLINKEXCLUDE (リンク元 URL レポート)、REDIRREFLINKINCLUDE と REDIRREFLINKEXCLUDE (Redirected Referrer Report)、FAILREFLINKINCLUDE と FAILREFLINKEXCLUDE (Failed Referrer Report)。 作成されるリンクは、BASEURL コマンドの影響も受けますので、気をつけてください。
ROBOTINCLUDE Googlebot/*
Stephen Turner
Analog についての質問はanalog-help メーリングリスト をお使いください。 (訳注: 日本では analog-jp メーリングリスト をご利用ください)