例えば、
Aというサイトに、
<?php
header("Location: http://B.com/");
?>
とします。
そして、
Bというサイトには、
<?php
header("Location: http://C.com/");
?>
とします。
この時、Cというサイトのアクセス解析などには、Bというサイトから来たことは分かると思うのですが、Aサイトを経由していることも分かるものなのでしょうか?
また分かる場合もありますか?
詳しい方、教えてください。
よろしくお願い致します。
Proxyならまだしもリダイレクトの場合は、A,Bどちらのサイトからもリダイレクトされてきたということは分かりません。CにとってはいきなりCに来た時と全く同じです。
唯一それらしい情報で分かるとすれば、Aのリダイレクトページへのリンク元URLが Referer で取得できます。
ですが、それも直接Cへのリンクを経由してきたものなのか、AやBからリダイレクトされてきたかどうかの区別はできません。
リダイレクトされたサイトは、Cのアクセス解析を見ても分からないはずですが
Cのアクセス解析に表示されて分かるのは、Aのサイトだと思います。
ただしAのサイトもリダイレクトされていた場合は分かりません。
基本的なイメージとしては
クリックされたサイトがCのアクセス解析にのると思います。
ナニワのシステム開発屋さん
「分かる場合もあり」です。
header("Location: によるリダイレクトの動作は、
要求)ブラウザ ⇒ A.com ⇒ B.com ⇒ C.com 返信)C.com ⇒ B.com ⇒ A.com ⇒ ブラウザ
ではなく、
要求)ブラウザ ⇒ A.com 返信)A.com ⇒ B.comへ飛んでと返答される ⇒ ブラウザ 要求)ブラウザ ⇒ ページを要求 ⇒ B.com 返信)B.com ⇒ C.comへ飛んでと返答される ⇒ ブラウザ 要求)ブラウザ ⇒ ページを要求 ⇒ C.com 返信)C.com ⇒ ページが返信される ⇒ ブラウザ
という順番に処理が流れています。
(かなり大雑把です。実際は各段階でさらに細かな通信を行ってます。)
ここまでの話で単純に返答すると、
ブラウザがリファラ(どこから飛んできたかという情報)を、
返す状況であっても、リファラの内容は1つ前だけなので、
2つ前の状況は判らないという事になります。
ただし、アドレスに何らかの引数を渡すなどしてあれば、
それだけで追いかける事が可能になったりする場合がありますし、
プロクシのように要求と返信を監視するようなものや、
アクセス解析のようなものが介在していても、
どこを経由しているかが判ってしまうなど、知るための技は複数あります。
(それらの技術を端的に説明するのは難しいため、詳細は割愛させてください。)
個人的に実施できるかどうかは別問題ですが、警察がプロバイダなどと
連携すれば、誰が、いつ、どこから、どのように、接続しているかを、
辿る事は難しい事ではなく、インターネットの仕組み上、
隠し通すほうが難しいと覚えておいたほうがよろしいかと思います。
どうしてもそういう情報が必要ならばリダイレクトを掛ける際に情報を付加すれば分かると思います。
サイト作成者側の対処法、ということになりますが。
<?php header("Location:http://B.com/?refferer=".$_SERVER['PHP_SELF']); ?>
つまり、Aサイトからリンクされてきた、ということが分からない、ということでしょうか?