逆アクセスランキング
■特徴とサンプル
- どこのホームページから自分のページに来たか集計する
- 日付けによってフォーマットする
- オフライン、オンラインから設定により URL とタイトルをマッチングできる
- ? 以降の情報は登録しないように設定できる
- アクセス順にソートする
- 過去ログを任意の数だけ保存
- アクセス環境を取得(ON/OFF)
v2.0未満は同じサイトからでもURLが違うと(例えば YAHOO! から、ディレクトリをたどってきた人と検索をしてくる人はURLが違うから)別ページとして認識していました。今回のバージョンアップでURLマッチングログを利用しURLの1部にマッチする物はすべてトップページのURLに置きかえられ登録されます(説明悪いな(^^; 何がなんだかよくわからん)とにかくその機能の反映がよりはっきり現れるのは1度、ログフォーマットされてからです。
■規約
このCGI はフリーですが規定通りに使ってください。
オリジナルスクリプトです。ということは、著作権欄を消さない限り再配布自由です。
Readme.txt にも少しあります。
■ファイル確認
解凍 したあと、以下のファイルがきちんとあるか確認してください。
- access.cgi -メインプログラム
- acmgr.cgi -管理用プログラム
- jcode.pl -漢字コードライブラリ
- access.dat -メインログ
- acuser.log -環境ログ
- save.log -過去ログ保存ログ
- time.log -日付けログ
- url.log -URLマッチング用ログ
- dummy.gif -ダミー画像
- Readme.txt -ソフトマニュアル
- access.htm -設置マニュアル
■設定変更
最小限の設定変更の説明です。メモ帳などで「access.cgi」のファイルを開いてください。
1行目
#!/usr/local/bin/perl
これを正しいパスに書きなおしてください。だいたいのサーバではこのままでOKです。
16行目
$days= 7;
ログをフォーマットする周期を日数で指定します。ログはこの周期が来ないと永遠に取り続けるのでかなりの重さになります。
あなたのページの人気度にあわせて指定してください。
21行目
$l_k = 1;
ファイルロック機構を使うか決めます。1=使う 0=使わない
25行目
@murl=('xxx.com','xxx.net','yyy.ne.jp');
登録を排除したいURLを記入します。URLの1部でOK
(たとえば http://www2u.biglobe.ne.jp/~ryu_1/ だったら、 "biglobe.ne.jp\/\~ryu_1" のようにする)
次にacmgr.cgi をメモ帳などのエディタで開いてください。
1行目
#!/usr/local/bin/perl
正しいパスに書きなおしてください。だいたいのサーバではこのままでOK。
17行目
$mpass="7777";
パスワードです。書き換えてください。
■日付けの修正
time.log をメモ帳などのエディタで開き日付けを修正してください。
■サーバに送る
基本設定ができたら、サーバに送りましょう。ここでは「public_html」の下に
[ access ]というディレクトリを作ってそこに送るという仮定で説明します。
[public_html]┐
├[access]┐(ロック機構を使う場合[777])
│ ├ access.cgi [755](メインCGI)
│ ├ acmgr.cgi [755](管理CGI)
│ ├ access.dat [666](ログファイル)
| ├ time.dat [666](日付けログ)
│ ├ url.log [666](URLマッチング用ログ)
│ ├ jcode.pl [755](日本語変換ライブラリ)
| ├ acuser.log [666](環境ログ/取得する場合)
| ├ save.log [666](過去ログ保存ログ/保存する場合)
│ └ dummy.gif (ダミー画像)
│
└ index.html
[ ]内の数字は送るときのパーミッションです。
ファイル名
|
モード
|
パーミッション
|
access.cgi/acmgr.cgi/jcode.pl
|
アスキー(テキスト)
|
755
|
access.dat/time.log/url.log/acuser.log/save.log
|
アスキー(テキスト)
|
666
|
ダミー画像
|
バイナリーモード
|
特に無し
|
■テスト
アップできたらテストをしてみましょう!access.cgi?count に直接URLをうちこんでアクセスしてください。
*) 以前のバージョンとは違いランキングを見る場合は http://〜/access.cgi?count と ?count というのを付けてアクセスしてください!
■ログ取得設定方法
CGIの場合
取得したいページ(おそらくトップページ)に以下のように記述してください。
例:
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write("<IMG SRC=\"access/access.cgi?");
document.write(document.referrer+"\" border=0 width=1 height=1>");
// -->
</SCRIPT>
集計を取りたいページがフレームの場合 index.html に 1.html 2.html を表示する際ははこっちのタグを 1.html か 2.html に記述▽
<SCRIPT Language="JavaScript">
<!--
document.write("<img src=\"access/access.cgi?");
document.write(parent.document.referrer+"\" border=0 width=1 height=1>");
// -->
</SCRIPT>
SSIを利用&ランク表示
50・51行目
$SSI = 0;
$SC = 5;
$SSI を 1 にする。
$SC をSSIを書くページに表示したいランク数にする(表示したくない場合は 0 を指定)
表示もしくはカウントを取るページに以下のように記述
<!--#exec cgi="./access/access.cgi"--> もしくは
<!--#include file="./access/access.cgi"-->
*) SSIにはサーバのバージョンなどによって以下の注意点があります
(1)コマンド名に絶対パスを指定できない
(2)パス名で上位のディレクトリ(..)を参照できない
(3)コマンドの引数を渡せない
とほほのWWW入門より引用
■URLマッチング方法
URLのマッチングをオフラインで行えます。url.log をメモ帳などのエディタで開いてください。
yahoo.co.jp;YAHOO!;http://www.yahoo.co.jp/;
lycos.co.jp;LYCOS;http://www.lycos.co.jp/;
というのがあるはずです。これは
これが含まれてるURLは;タイトル表示で;このURLに飛ぶ;
という意味になってます。URLの1部はできる限り短くかつそのサイトだけの特色が出るように設定してください。
ですから、例えばCJ Club、VECTERからのアクセスが多いなら、
biglobe.ne.jp/~ryu_1;CJ Club;http://www2u.biglobe.ne.jp/~ryu_1/cj_c/;
vecter.co.jp;VECTER;http://www.vecter.co.jp/;
と区切ればマッチングできます。何度でもどんどんたして上書きしていけます。
*1行につき1つのサイトの情報
管理モードからの追加も可能になりました。
access.cgi?count でランキングを開き右下の管理用からパスワードを入力。そのあと、フォームが出てくるので処理をしてください。
■その他
わからない、設置できない、バグが出たなどの情報はサポート掲示板までお願いします。