- ベストアンサー
アクセス解析でのHTTP_REFERERについて
- アクセス解析のCGIを作成する際にHTTP_REFERERについての課題が発生しています。
- HTTP_REFERERが空白になってしまう原因について、詳細な解説を求めています。
- Tripodの無料HPを使用している状況で、HTTP_REFERERの保存に特別な処理が必要なのかを確認したいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 JavaScriptから起動されているんですか。 それなら、いっそRefererもJavaScriptで取得してはどうでしょう? CGIからの取得では、「自分を呼び出したのはJavaScript」という事になるので、うまく取得できないと思います。 私も以前JavaScriptから呼び出すアクセス解析を作成しましたが、JavaScriptで取得するようにしていました。 document.referrer で取得できますよ。
その他の回答 (1)
- HUTABA
- ベストアンサー率27% (436/1611)
No $ENV{'HTTP_REFERER'}で(必ずしも正しくはありませんが)リンク元が取得できます。 Mohicanさんはご自身で作られたアクセス解析をテストする時に、きちんとREFERERが取れるようにアクセスされていますか? CGIスクリプトに直接アクセスしたり、ログを収集するタグを埋め込んだページに直接アクセスしていたりしては、「リンク元」なんて物は存在しないわけですから、そういう場合は取得できないと思います。
お礼
早速の御回答本当にありがとうございます。 ローカルでのテストをした際は、きちんとリンク元がログに保存されます。なのでREFERERが空ということはないとは思います。確認するためローカルでしっかりとリンク元が表示される簡単なものをそのままサーバ上で再現してみました。 ローカルでテストした状況は a.html から b.html にリンク b.html で javascript を使って access.cgi を起動させる 結果を log.dat に残す。 この場合、ローカルではリンク元はきちんと ~~~a.html とログに保存されています。けれどこれとまったく同じ状況をTripodのサーバ上で再現してもなぜかリンク元が必ず空白になってしまうんです。リンク元以外のログは(時間やIP)しっかりと保存されているのでアドレスの指定が間違っていてaccess.cgiが動いていないということはありません。 そこで「これはもしかして何か特別な処理が必要なのかなぁ?」と思ってお伺いした次第です。やはりわたしのが書いたものがどこかおかしいのでしょうか??(なにか間違いを犯せる程の長さではないのですが・・・)
お礼
>document.referrer >で取得できますよ。 ご丁寧に教えていただいて本当にありがとうございました。おかげ様で動作しました。