• ベストアンサー

リンク先がgoogleなどの場合

JavaScriptのdocument.referrerを使ってリンク先を取得するアクセスログを作りました。 普通のサイトからでは問題はないのですが、googleなどの検索サイトから飛んでくる人のリンク先の表示が、 http://google.yahoo.co.jp/bin/query?p で止まってしまいます。 検索文字まで表示するにはどうすればいいでしょうか? 回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • retr
  • ベストアンサー率75% (30/40)
回答No.2

http://google.yahoo.co.jp/bin/query?p の後には、通常、=が続きますよね。 GETにおいて=は特別な役割を果たすので、アクセスログを取るCGIなどに、GETでこのリファラーをわたしても、p以降が消えるのは当然です。 これを避けるには、CGIに、GETではなくてPOSTでリファラーをわたすか、渡す前に、リファラー文字列をURLエンコードしてください。

shotaro777
質問者

お礼

回答ありがとうございます。 なるほど、GETだからまずかったんですね。 ありがとうございます。

その他の回答 (1)

  • nipotan
  • ベストアンサー率59% (134/227)
回答No.1

何で Perl のカテゴリにこういう内容があるのかわからないのですが、 通常 Google 等でも、document.referrer には普通に QUERY_STRING は入るハズです。 「アクセスログを作りました」との事ですから、さすがにアクセスログへの書込みは JavaScript でやっていないんでしょうから、そのログへの書込みを行うプログラムに渡すデータの「渡し方」に問題があるとか、「書込み方」に問題があるとか、そういう部分を疑ったほうがいいと思います。

関連するQ&A

専門家に質問してみよう