• ベストアンサー

リンク元によって任意のページに。

特定のリンク元からアクセスした方だけを、自動的に任意のページに飛ばす方法を教えていただけませんでしょうか。 よろしくお願いします。

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

  • ベストアンサー
noname#199778
noname#199778
回答No.4

特定のドメインないし、特定のディレクトリ以下のファイルからのリンクを指定する場合は、正規表現を使うことで実現可能と思います。 複数のドメイン・ディレクトリをターゲットに、それら以下にあるページのリンクから来た来訪者を指定のページに移動させるように、改造してみました。 <script type="text/javascript"> <!-- function pagejump(){ specific_url = new Array(); specific_url[0] = "http://hoge1.com"; specific_url[1] = "http://hoge2.com"; specific_url[2] = "http://hoge3.com"; specific_url[3] = "http://hoge4.com"; // 特定のリンク元のドメイン・ディレクトリ・URLを指定 for (i=0; i<specific_url.length; i++){ if (document.referrer.match(specific_url[i])){ location.replace("***.html"); // 括弧内には移動先のURLを記入 } } } window.onload=pagejump; // --> </script> テストを十分に行っていないので、動作の保証はできませんが… 参考まで。

kyouko_AYA
質問者

お礼

すみません!早速お答え下さって・・しかもバッチリ思いどうりに動作しました!ほんとうにありがとうございました。

その他の回答 (3)

回答No.3

lead1976 さんのスクリプトをリンク元のURLが複数に対応できるよう改造してみました。 <script type="text/javascript"><!-- function pagejump(){ var specific_url = new Array( "http://hogehoge1/hoge1.html", // 特定のリンク元のURLを記入 "http://hogehoge2/hoge2.html", "http://hogehoge3/hoge3.html", "http://hogehoge4/hoge4.html" //いくらでも増やせるが最後はコンマ入れない ); for (i=0;i<specific_url.length;i++) { if (document.referrer == specific_url[i]){ location.replace("***.html"); // 括弧内には移動先のURLを記入 } } } window.onload = pagejump; // --></script>

kyouko_AYA
質問者

お礼

ありがとうございました!すごいです!複数のリンク元に対応できました。お二人のおかげです。本当に感謝いたします! それで・・本当にすみません!またまたあつかましいのですが、よろしければ教えていただきたいことが・・例えばリンク元のURLをhttp://hoge1.comと記入すると、それだけでhttp://hoge1.com/1.htmlにもhttp://hoge1.com/2.htmlにも対応するようにはできるでしょうか。そういうのがhttp://hoge1.comhttp://hoge2.comhttp://hoge3.comと複数あって、それぞれ、そのアドレス以下のドのページからリンクされても対応できるようにしたりするにはどういう記述にすればよろしいのでしょうか・・。どうか教えていただけませんでしょうか。本当に何度もすみません!

noname#199778
noname#199778
回答No.2

JavaScriptで特定のリンク元からの訪問者を、別の任意のページに移動させる場合は、下記のようなソースで対応できると思います。 <script type="text/javascript"> <!-- function pagejump(){ specific_url="http://*****/*****.html"; // 特定のリンク元のURLを記入 if (document.referrer==specific_url){ location.replace("***.html"); // 括弧内には移動先のURLを記入 } } window.onload=pagejump; // --> </script> ただ、JavaScriptが有効でない環境の閲覧者の場合、このスクリプトで移動させる事はできませんので、少し実効性が落ちると思います。 参考まで…

kyouko_AYA
質問者

お礼

ありがとうございました!教えていただいたソースで出来ました。感激です!それで・・あつかましいのですが、もうひとつ教えていただきたいのです。 リンク元のURLが複数ある時はどういう記述にすればよろしいのでしょうか・・。移動先のURLはひとつなのですが・・。どうか教えていただけませんでしょうか。なにとぞお願いします!

  • elmclose
  • ベストアンサー率31% (353/1104)
回答No.1

HTTPリクエストのヘッダーの中のrefererを参照して、それに応じて異なる結果を返すようにすれば良いと思います。そういうCGIを書く必要があると思います。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html また、SSIを使ってもできるのではないでしょうか。 http://tohoho.wakusei.ne.jp/wwwssi.htm

参考URL:
http://tohoho.wakusei.ne.jp/wwwssi.htm
kyouko_AYA
質問者

お礼

早速ありがとうございました。でも頭の悪い私には難しすぎました・・せっかく教えていただきましたのに、すみません。

関連するQ&A