[ CGI集 | CGI解説 | Perl解説 | HTML解説 | LinuxMemo | Q&A | QuizLink ]      

逆リンク収集CGI T-Revlink Ver.2.00 説明書

about...

機能

 CGI と JavaScript を組み合わせた逆リンク、つまり、自分のページがどこからリンクされているかを調べるプログラムです。具体的には、そのページにアクセスがあった時、現在のドキュメントを呼び出したドキュメントのURLを JavaScript の document.referrer を使って収集し、ログファイルに取り込む仕組みになっています。以下の特徴を持っています。(はVer.2からの新機能)

  • 既存のページにタグを書くだけで、複数のページの逆リンクリストを生成可能。
  • 別サーバーにあるページの逆リンクを取ることも可能。
  • URLに特定の文字を含むサイトからのリンクは省ける。つまり、自分のページ内からのリンクなどを集計しないようにできる。
  • リンクをたどってきた回数最終アクセス時刻を記録。
  • ジャンプ回数又は最終アクセス時刻順に表示することが可能。
  • サーチエンジンの検索結果から跳んできた場合、検索した文字列を読める形にして表示。
  • 一番重い処理であるデータの更新は一時間おきに行われ、一回のアクセスごとの処理は非常に軽い
  • 処理の結果(上手く行ったか、エラーが起きた場合はどんなエラーか)を数字(画像)で表示。
  • URLに対する簡単な検索が可能。(ただし英数字のみ)
  • DBMの使用を廃止。ログは通常のテキストで保存される。従ってNT系サーバでも動作可

[目次へ]

ソース

(ダウンロード後、ファイル名が"-cgi.txt"となっているものを、".cgi"に変更してください)

全ファイルをまとめてダウンロード 〜 revlink200.lzh

プログラム

[目次へ]

インストール方法

インストール

  1. ソースから全てのファイルをダウンロードする。
    ※ ダウンロード方法はソースをダウンロードするを参照。

  2. .cgi ファイルの最上部のPerlのパスを正しく設定する。
    ※ 詳しくはPerlのパスを設定するを参照。

  3. .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などでそのコードに変換してください。

  4. 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

  5. $basedir で指定したディレクトリの下($basedir=".";の場合は .cgi と同じディレクトリ。以下同様。)に 画像ファイル0.gif〜7.gif をバイナリモードでFTPする。パーミッションを 604 に設定する。

    (telnetの場合)
    % chmod 604 *.gif

  6. 同じく $basedir で指定したディレクトリに、ディレクトリ lockdir を作成する。パーミッションを 707 にする。

    (telnetの場合)
    % mkdir lockdir
    % chmod 707 lockdir

  7. ブラウザから trlink.cgi にアクセスしてみる
     → 数字画像の 「2」 が表示されればOK。
       ※ 上のように表示されない場合、ブラウザでアクセスするを参照して問題を解決してください。

  8. ブラウザから trlshow.cgi にアクセスしてみる
     → HTML が表示され、「DB番号1は登録されていない」というメッセージが表示されればOK。

[目次へ]

 

あるページに逆リンク探知器をつける

 例として以下のような場合を考える。
  • http://hoge.com/index.html ... ここへの逆リンクを集計する
  • http://other.ne.jp/cgi-bin/revlink/trlink.cgi ... プログラムが置いてある場所

  1. まずデータベース番号を決める。番号は1から順に新しく作る度に一ずつ増やしていく。ここでは 1 とする。

  2. link-<データベース番号>.dbf (ここでは link-1.dbf )という空ファイルを作り、$basedir で指定したディレクトリにアスキーモードでFTPする。パーミッションを606にする。
    ※ 空ファイルの作り方は、空ファイルの作り方を参照。

    % chmod 606 link-1.dbf

  3. 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>

  4. ブラウザから http://hoge.com/index.html にアクセスしてみる
      →上のタグを加えた場所に数字画像の0か3か4が表示されていればOK。
    ※ 他の数字の場合は「数字画像を使った動作確認」を見て対応。

  5. 他サイトのリンク※から http://hoge.com/index.html にアクセスしてみる
      → 数字画像の3が表示されればOK。
    インストール方法の3で指定した @excepts に引っかからないサイトからアクセスしてください。

  6. 一旦FTPソフトを終了させて再度立ち上げ、インストール方法の6で作成したlockdirの場所を開いてみる。
     → tmp-1-xx というファイルができていればOK。

  7. その 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番号-時刻」という名前で作られる)に保存されます。

[目次へ]

バージョンアップ

バージョン履歴

  • (00/06/24) Ver.2.00
     新規公開

[目次へ]

 

1.xx → 2.0x 以降

 Ver.2.xx は Ver.1.xx とのデータファイルの互換性はありません。ただし、JavaScriptのタグログ閲覧用のURLは一緒なので、

  1. Ver.1.xx のファイルを全て削除

  2. 同じ場所にインストール方法に従ってインストール

とすれば、データは全部消えますが、今までと同じように使えるようになります。

[目次へ]