(2017年3月10日に書き直しました)
ずいぶん前に書いた記事でしたがその時は「https://サイトからはリファラは来ない。」と断定していたので書き直すことにしました。
とはいえ、今でも状況は変わらないのですが、リンク元がなんらかの事情があってhttps://サイトからの遷移先にリファラ情報を与えたいというときは数年前ににW3Cで発表されたmetaタグを使うことができるようになりました。
ただ、以前は一部のブラウザではそのmetaタグに対応していない状況でしたので、PCだけですがちょっとテストしてみました。
やったのは私のWindowsPCだけ。
私のPCにインストールされている5つのブラウザを立ち上げて、HTTPSのサイトに置いたリンク元のページを表示させ、次々に押下してみました。
リンク先はこのブログ(リファラテストというタイトルのページ)です。
メタタグの設定値は、相手先がHTTP、HTTPSなど関係なく送信する”unsafe-url”です。
<meta name=”referrer” content=”unsafe-url”>
しかし、何が悪かったのか、下記ようにそれぞれのアクセスは記録されていましたが、
上記の5種類のうち、リンク元URLが取得できたのは下記のFirefox 51.0だけ。
いつもの自分のIPアドレスはフィルタリングしているので、スマホのティザリングで接続したため、アクセス元はspmode.e.jpと表示されています。
なにが悪かったのか・・・
ほかのブラウザは、初期から対応していると聞くChromeでさえ取得できていませんでした。
(その数時間後)
再度テストしてみましたが、リファラURLは取れませんでした。
なお、Android(Chrome)でテストしましたが、それはリファラを取ることができました。
下記は、2008年6月22日に書いたときのオリジナル記事です。
https://サイトからはリファラは来ない。
とあるクローズドの某https://サイトから来たときのみ、ページを表示するCGIを組んでもらって、テストしたところ、どうしてもそのCGIがページを表示してくれなくて、苦慮していました。
BOOKMARKされても見せない、某https://サイトからのユーザーのみ見せるという要件だったので、リファラチェックでいいと思ったのですが、ググってみると、ダメだったのですね。
https://のサイトからはリファラは来ないって。
しかたないのでhttps://からのリンク先をBOOKMARKされないように、URL(ソース)をFLASHで隠し、飛び先のCGIと同じサイト内に用意した”隠しランディングページ”に飛ばしました。
そこでゼロ秒でCGIにリダイレクトをかけて、そのランディングページのリファラだと表示OK、というようにしたのですが・・。面倒くさい。
なんか他にスマートな方法なかったのでしょうか。
(2013.02.01追記)
上記の記事を書いた当時(2008年)は、SSL(https://)のサイトからのリファラがとれないことは特に話題にも上りませんでしたが、その後、Googleが検索画面を強制的にhttp://からhttps://にリダイレクトして検索させるようになってから、Googleでどんなキーワードで訪問者が来たのか、検索キーワードが落ちて(剥がれて)しまうのでわからないという問題が発生して話題になりました。
その後、特に対策はないように思いますが、「referrer metaタグ」を埋め込みなさいというアドバイスも見かけたので、興味のある方は「referrer metaタグ」でググってみてください。