逆リンク収集CGI T-Revlink Ver.2.00 説明書
(c) Takahiro Nishida 2000/6/24
about...
目次
- 機能
- ソース
- インストール方法
- 使い方
- Note...
- バージョンアップ
機能
CGI と JavaScript を組み合わせた逆リンク、つまり、自分のページがどこからリンクされているかを調べるプログラムです。具体的には、そのページにアクセスがあった時、現在のドキュメントを呼び出したドキュメントのURLを JavaScript の document.referrer を使って収集し、ログファイルに取り込む仕組みになっています。以下の特徴を持っています。( ★はVer.2からの新機能)
- 既存のページにタグを書くだけで、複数のページの逆リンクリストを生成可能。
- 別サーバーにあるページの逆リンクを取ることも可能。
- URLに特定の文字を含むサイトからのリンクは省ける。つまり、自分のページ内からのリンクなどを集計しないようにできる。
- リンクをたどってきた回数と★最終アクセス時刻を記録。
- ジャンプ回数又は★最終アクセス時刻順に表示することが可能。
- サーチエンジンの検索結果から跳んできた場合、検索した文字列を読める形にして表示。
- 一番重い処理であるデータの更新は一時間おきに行われ、一回のアクセスごとの処理は非常に軽い。
- 処理の結果(上手く行ったか、エラーが起きた場合はどんなエラーか)を数字(画像)で表示。
- ★URLに対する簡単な検索が可能。(ただし英数字のみ)
- ★DBMの使用を廃止。ログは通常のテキストで保存される。従ってNT系サーバでも動作可。
[目次へ]
インストール方法
インストール
- ソースから全てのファイルをダウンロードする。
※ ダウンロード方法はソースをダウンロードするを参照。
- .cgi ファイルの最上部のPerlのパスを正しく設定する。
※ 詳しくはPerlのパスを設定するを参照。
- .cgiファイルの以下の変数を編集してください。
(1)trlink.cgi、(2)trlshow.cgi
- $basedir
..... データファイルを格納するディレクトリのパス(※注1) (1)(2)
- @excepts
..... ここに書かれたキーワードを含む場合は、リンクが生成されない。(※注2) (1)
- $backurl
..... 戻り先のURL (2)
- $code
..... 日本語の文字コード(※注3) (2)
※注1 データファイルをプログラムと同じ場所に置く場合は $basedir=".";のままで。
※注2 キーワードは '' で囲って下さい。複数設定したい場合はカンマ(,)で区切ってください。
[例] @excepts = ('yahoo', 'tnishida', 'saru');
↑リンク元URLに「yahoo」又は「tnishida」又は「saru」が含まれている場合は記録されない。
※注3 sjis以外に変更する場合は、全てのファイルをnkfなどでそのコードに変換してください。
- trlink.cgi, trlshow.cgi, jcode.plファイルをアスキーモードでFTPし、パーミッションは、cgiを 705 、.plを 604 に設定する。
※ FTPについてはプログラムをFTPで送るを参照。
※ パーミッションについてはパーミッションを設定するを参照。
(telnetの場合)
% chmod 705 trlink.cgi
% chmod 705 trlshow.cgi
% chmod 604 jcode.pl
- $basedir で指定したディレクトリの下($basedir=".";の場合は .cgi と同じディレクトリ。以下同様。)に 画像ファイル0.gif〜7.gif をバイナリモードでFTPする。パーミッションを 604 に設定する。
(telnetの場合)
% chmod 604 *.gif
- 同じく $basedir で指定したディレクトリに、ディレクトリ lockdir を作成する。パーミッションを 707 にする。
(telnetの場合)
% mkdir lockdir
% chmod 707 lockdir
- ブラウザから trlink.cgi にアクセスしてみる
→ 数字画像の 「2」 が表示されればOK。
※ 上のように表示されない場合、ブラウザでアクセスするを参照して問題を解決してください。
- ブラウザから trlshow.cgi にアクセスしてみる
→ HTML が表示され、「DB番号1は登録されていない」というメッセージが表示されればOK。
[目次へ]
あるページに逆リンク探知器をつける
例として以下のような場合を考える。
- http://hoge.com/index.html ... ここへの逆リンクを集計する
- http://other.ne.jp/cgi-bin/revlink/trlink.cgi ... プログラムが置いてある場所
- まずデータベース番号を決める。番号は1から順に新しく作る度に一ずつ増やしていく。ここでは 1 とする。
- link-<データベース番号>.dbf (ここでは link-1.dbf )という空ファイルを作り、$basedir で指定したディレクトリにアスキーモードでFTPする。パーミッションを606にする。
※ 空ファイルの作り方は、空ファイルの作り方を参照。
% chmod 606 link-1.dbf
- http://hoge.com/index.html の邪魔にならない場所(</body>タグの直前など)に、次のタグを貼り付ける。
※ 注1:赤い数字の所にはデータベース番号を書く
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write('<IMG SRC="http://other.ne.jp/cgi-bin/revlink/trlink.cgi?1&');
document.write(document.referrer);
document.write('" HEIGHT="10" WIDTH="10">');
// -->
</SCRIPT>
- ブラウザから http://hoge.com/index.html にアクセスしてみる
→上のタグを加えた場所に数字画像の0か3か4が表示されていればOK。
※ 他の数字の場合は「数字画像を使った動作確認」を見て対応。
- 他サイトのリンク※から http://hoge.com/index.html にアクセスしてみる
→ 数字画像の3が表示されればOK。
※ インストール方法の3で指定した @excepts に引っかからないサイトからアクセスしてください。
- 一旦FTPソフトを終了させて再度立ち上げ、インストール方法の6で作成したlockdirの場所を開いてみる。
→ tmp-1-xx というファイルができていればOK。
- その tmp-1-xx をFTPでダウンロードして、テキストエディタ(メモ帳など)で開いてみる
→ アクセス元のURLが記述されていればOK。
[目次へ]
他のページにもつける
逆リンクを取るページを増やしたい場合は、新しいデータベース番号に代えて(既に1を使っているのなら2)、あとは あるページに逆リンク探知器をつけると同じように準備してください。
[目次へ]
使い方
ログの見方
ログは、 trlshow.cgi?<データベース番号> にアクセスすることによって見ることができます。
(例) データベース番号1のログを見る場合 ... http://others.ne.jp/cgi-bin/trlshow.cgi?1
ログは以下のようなフォーマットになっています:
フォーマット: [ジャンプ回数] [最終アクセス時刻] [URL]
(例) [29] [20000623171108] http://www.yahoo.com/cgi/
→ http://www.yahoo.com/cgi/ から過去29回のアクセスがあり、最も最近のアクセスは 2000年6月23日17時11分08秒。
※ 最終アクセス時刻のフォーマットは「年月日時分秒」です。
[目次へ]
ログのソート順変更、検索
ログページのDB番号の右にある「 ヒット数順/最終アクセス時刻順」のリンクをクリックすると、それぞれその順番にソートし直して表示されます。
また、検索のテキストボックスに文字をいれると、その文字がURLに含まれるものだけを表示します。例えば、「biglobe.ne.jp」と入れると、biglobeからのリンクのみが表示されます。
[目次へ]
数字画像を使った動作確認
実行結果が数字画像ファイルで表示されますが、その意味は次の通り。( カッコ内は考えうる原因)
- 0 ... 成功
- 1 ... ロック中 (→lockdirのパーミッションが707になっていない)
- 2 ... データベース番号が取得できない (→タグの書き方のミス)
- 3 ... 呼び出し元のURL (document.referrer) を取得できない (→ブラウザがJavaScript非対応)
- 4 ... URLが trlink.cgi 中の @except で指定した例外に引っかかった。(→正常)
- 5 ... 一時ファイルが開けない (→ lockdir のパーミッションが707になっていない)
- 6 ... データベースが開けない (→link-<データベース番号>.dbf ファイルのパーミッションが606になっていない)
- 7 ... データベースが登録されていない (→link-<データベース番号>.dbf ファイルがない)
[目次へ]
Note...
ログが大きくなりすぎないように定期的に消しましょう
trlink.cgi を設置したまま放っておくと、ログがどんどん大きくなっていき、容量を食いつぶしてしまいます。ログをリセットしたい場合は、 あるページに逆リンク探知器をつけるの2で作った link-<データベース番号>.dbfというファイルの上に、同じ名前の空ファイルを上書きFTPしてください。
[目次へ]
設置してから逆リンクが見られるようになるまで時差があります
設置完了後、試しに別の場所からアクセスしてみて trlshow.cgi?1 でログを見ても、逆リンクが出てこない、という場合があります。それは、CGIの負荷を軽くするための T-Revlink 2 の仕様によるものです。
T-Revlink 2 では、データ収集処理を軽くするために逆リンクデータベースの更新は一時間おきに行っています。収集した逆リンクがすぐにデータベースに反映されるわけではないので、収集した逆リンクを見られるようになるまで時差が生じます。具体的には、毎時0分にデータベースの更新を行いますので、例えば、設置したのが 16:24 だった場合、17:00 以降にその逆リンクを見られるようになります。
※ 収集した逆リンクは、データベース更新の時間がくるまでは、一時ファイル(lockdirの下に作成される「tmp-DB番号-時刻」という名前で作られる)に保存されます。
[目次へ]
バージョンアップ
バージョン履歴
[目次へ]
1.xx → 2.0x 以降
Ver.2.xx は Ver.1.xx とのデータファイルの互換性はありません。ただし、 JavaScriptのタグや ログ閲覧用のURLは一緒なので、
- Ver.1.xx のファイルを全て削除
- 同じ場所にインストール方法に従ってインストール
とすれば、データは全部消えますが、今までと同じように使えるようになります。
[目次へ]
|