設定ファイルのサンプルを以下に示します。
行の最初の空白文字列、最後の空白文字列は無視されます。
空白文字を除いた最初の文字が "#" か ";"の場合、
あるいは空行の時はコメント行となります。
タグ行は "="に続くタグ名で始めます。
タグ行に続く行はそのタグ名によるオプションの値となります。
コメント指定文字 ("#"、";")、
タグ指定文字 ("=")、空白文字を行の先頭に使いたい時は、
""" か "'" でクォートして下さい。
#!npc.cgi -- ファイル先頭行の「#!npc.cgi」で npc.cgi の設定ファイルか
# どうかを見分けています。
; npc.cgi v0.82 以降は設定ファイルの制御構文が構造化され、
; 条件分岐が視覚的にも分かりやすくかけるようになりましたので
; なるべく構造化文(=IF)を使って書くようにした方が良いでしょう。
; また、従来の記法では表現できなかった環境変数やオプションの値を
; 使っての条件分岐も可能になっています。
###
# 最初の部分は下の旧形式と同じ条件を構造化文を使って書いています。
#
=WIDTH
5
=PROGRESS
OFF
=INCREMENT
1
=IF=REFERER
^$
=INCREMENT
0
=RESTRICTION
1
=ELSIF=REFERER
^http://nocount@www2\.biglobe\.ne\.jp/
=RESTRICTION
0
=INCREMENT
0
=ELSIF=REFERER
^http://www2\.biglobe\.ne\.jp/
^http://www2\.meshnet\.or\.jp/
=RESTRICTION
0
=IF=BROWSER
^Mozilla/[1-9]
=PROGRESS
ON
=DELAY
1000,50
=ENDIF
=IF=ADDR
127.0.0.1
=INCREMENT
0
=ELSIF=HOST
^meshse[0-9]*\.mesh\.ad\.jp$
^host\.domain\.com$
=INCREMENT
0
=ENDIF
=ELSE
=RESTRICTION
2
=ENDIF
###
# オプションでモード=1が設定されている場合は、リロードしても
# カウントアップしないようにしています。
#
=IF=OPT=MODE
1
=IF=ENV=HTTP_PRAGMA
no-cache
=INCREMENT
0
=ENDIF
=ENDIF
=COUNTER
0000000007 test
0000000001 http://www.your.site/your/page/index.html
0000000001 ftp://ftp.your.site/pub/down/conter.gz
以下は旧形式です。使用は推奨しません。
#!npc.cgi -- 設定ファイルの最初の行は「#!npc.cgi」で始まっていること。
### これは旧形式の設定ファイル構文の例です。
### 新形式(sample2.idx)の方が構造化されていて分かりやすいと
### 思いますので、なるべく新形式の方を使って下さい。
;
; このような設定をしたいとします。
;
; # ここは仮想的なマクロで書いてあって設定自体には影響が無いので、
; # 分からなければ気にしないで下さい。(^^;;
;
; WIDTH=5
; PROGRESS=OFF
; INCREMENT=1
; if (REFERER =~ /^$/) {
; INCREMENT=0
; RESTRICTION=1
; } elsif (REFERER =~ m#^http://nocount@www2\.biglobe\.ne\.jp/#) {
; RESTRICTION=0
; INCREMENT=0
; } elsif ((REFERER =~ m#^http://www2\.biglobe\.ne\.jp/#)
; || (REFERER =~ m#^http://www2\.meshnet\.or\.jp/#)) {
; RESTRICTION=0
; if (BROWSER =~ m#^Mozilla/[1-9]#) {
; PROGRESS=ON
; DELAY=1000,50
; }
; if (ADDR == 127.0.0.1) {
; INCREMENT=0
; }
; if ((HOST =~ m/^meshse[0-9]*\.mesh\.ad\.jp$/)
; || (HOST =~ m/^host\.domain\.com$)) {
; INCREMENT=0
; }
; } else {
; RESTRICTION=2
; }
;
; これを設定ファイル書式に直すと以下のようになります。
###
# 最初に全体に適用するオプションを設定しています。
#
=WIDTH
5
=PROGRESS
OFF
=INCREMENT
1
###
# HTTP_REFERER が不正な時にはアクセスを排除します。
#
=RESTRICTION
2
###
# HTTP_REFERER が設定されていない時は念のためカウントアップさせません。
# コマンドラインのオプションも無効にしますので、強制的にカウントアップ
# させることも出来ません。
=REFERER
^$
=INCREMENT
0
=RESTRICTION
1
###
# ペーヂオーナが固定のIPアドレスを持たない場合、自分のペーヂに
# アクセスする時、http://nocount@www2.biglobe.ne.jp/%7Euser/ の様に、
# 最初に nocount を付けることによってカウントアップをしないように
# するために、REFERER をチェックしています。
=REFERER
^http://nocount@www2\.biglobe\.ne\.jp/
=RESTRICTION
0
=INCREMENT
0
###
# このカウンタの使用を許可しているサイトです。
# ここでは、Mesh User's WWW 1 号機からなら制限無しになっています。
=REFERER
^http://www2\.biglobe\.ne\.jp/
^http://www2\.meshnet\.or\.jp/
=RESTRICTION
0
### Netscape 1.0 以降なら PROGRESSIVE モードを使っても平気です。
=BROWSER
^Mozilla/[1-9]
=PROGRESS
ON
### 背景パターン等が転送されたのを見計らってカウントアップを
### 開始するように、1 秒待ってから始めています。
=DELAY
1000,50
### ここから先は、再びどんなブラウザにも適用されます。
=BROWSER
^
### アクセスするサイトのIPアドレスが固定の場合には、そこからアクセス
### した時、動作を変える様にも出来ます。
###
### ここでは管理者がサーヴァマシン自身からループバックアドレスを使って
### アクセスしたり、サーヴィス端末とか特定のホスト(host.domain.com)
### からアクセスした時には、不必要にカウントアップしない様にしています。
=ADDR
127.0.0.1
=INCREMENT
0
=HOST
^meshse[0-9]*\.mesh\.ad\.jp$
^host\.domain\.com$
=INCREMENT
0
###
# COUNTER
#
### この =COUNTER タグの後ろは CGI Program がいぢるので
### 手で変更しない方が無難です。(もちろん、此処に書いてある
### サンプルのカウンタエントリーは削除して構いません)
=COUNTER
0000000007 test
0000000001 http://www.your.site/your/page/index.html
0000000001 ftp://ftp.your.site/pub/down/conter.gz