• 締切済み

特定リンク元からのアクセスをブロックしたい

とあるブログに、当方のブログURLがリンク先として貼られました。 (アクセス解析により判明しました) そこ経由でのアクセスに迷惑しており、ブロックしたく思います。 使用ブログはFC2です。 IPごとのアクセス拒否設定は可能ですが、 設定可能数の上限を超えるため、対応しきれません。 先方に「リンクを外してほしい」と連絡しましたが、対応してもらえません。 ブログ転居も試みましたが、すぐにまたリンク先として設定され、 同じことの繰り返しとなっております。 テンプレートのHTML編集部分に、こういうタグを入れれば良い、 といった具体的方法をご存じの方からのご回答をお待ちしております。 よろしくお願いいたします。 ※説明に不足点等ございましたら、ご容赦のうえご指摘願います。

みんなの回答

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.7

if (ref_url.indexOf(check_url[n] > -1) { のところ、「)」が1つ抜けています。 if (ref_url.indexOf(check_url[n]) > -1) { ですよ。

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.6

すいません訂正です。 if (ref_url.indexOf(check_url[n] > -1)) { は if (ref_url.indexOf(check_url[n]) > -1) { の間違いです。

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.5

no_url = ""; の後に break; を足しておいてください。

mew2008
質問者

お礼

補足等を重ね重ねありがとうございます。 if (ref_url.indexOf(check_url[n] > -1)) { 部分の修正を加えた上で、次のように「break;」を足したところ、 テストメッセージは消えたのですが、アクセスブロックが効かなくなりました。 (自分の別ブログを「リンク元拒否」対象URLとしてテストしているのですが、 そこからリンクさせた場合、普通に閲覧できる状態になってしまいました) //URLをチェック for (n=0;n<num_check;n++) { if (ref_url.indexOf(check_url[n] > -1) { //対象を含む場合 document.location = ok_url; no_url = "";break; //テスト用 alert(ok_url + "へ移動します。"); } } if (no_url != "") { //対象が含まれない場合 document.location = no_url; //テスト用 alert(no_url + "へ移動します。"); } 再度ご指示を賜れますとありがたく存じます。 たびたび申し訳ございません。

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.4

//該当ありの場合の移動先 ok_url = "./linkselecter2.html"; この部分を ok_url = ref_url; とすると、リンク元に表示が戻りますので、いくらリンクしてもどこにも飛べないようになります。 ただし、このスクリプトではリンク元が判る場合だけなので、URL欄に入力された場合や、リンクを別窓や別タグで開くと、リンク元の取得ができなくなります。 その場合は、リンク元が空白の場合もチェック対象にします。「""」を加えればOKです。 check_url = new Array("対象URL",""); ただし、この方法は諸刃の剣ですので、対象外のつもりであっても、条件に合えばはねられてしまいます。

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.3

<script language="javascript"> <!-- //リンク元の取得 ref_url = document.referrer; //チェック対象 check_url = new Array("対象URL"); num_check = check_url.length; //該当ありの場合の移動先 ok_url = "移動先URL"; //該当なしの場合の移動先 no_url = "移動先URL"; //URLをチェック for (n=0;n<num_check;n++) { if (ref_url.indexOf(check_url[n] > -1)) { //対象を含む場合 document.location = ok_url; no_url = ""; //テスト用 alert(ok_url + "へ移動します。"); } } if (no_url != "") { //対象が含まれない場合 document.location = no_url; //テスト用 alert(no_url + "へ移動します。"); } --> </script> このスクリプトをHTMLのソースに記述します。 対象URLにリンク元のURLを入れます。一部を参照するので、yahooだけでyahooを含む全てのURLが対象となります。 移動先URLにはそれぞれ、該当ありの場合の移動先と、該当なしの場合の移動先を入れておきます。 テスト用のalertは、動作を確認後削除してください。

mew2008
質問者

お礼

大変ご丁寧にありがとうございます。 テストしてみましたところ、うまく作動いたしました。 大変恐縮なのですが、あと1点だけ教えていただけますでしょうか。 >テスト用のalertは、動作を確認後削除してください。 //テスト用 alert(no_url + "へ移動します。"); ↑の部分を削除すればよろしいのでしょうか? 調べてみたのですが分かりませんでしたので、 何卒よろしくお願いいたします。

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.2

CGIやJavaScriptを使って、指定のリンク元だったらページを切り替えるということは可能です。 既存のページに組み込むならJavaScriptの方が手軽ですけど、相手を逆上させてしまわないか心配です。

mew2008
質問者

お礼

ご回答をありがとうございます。 >CGIやJavaScriptを使って、指定のリンク元だったらページを切り替えるということは可能です。 いろいろと試してみたいので、 この方法をもう少し詳しく教えていただけますと、 大変ありがたく存じます。 よろしくお願いいたします。

noname#198951
noname#198951
回答No.1

アクセスカウンタを入れれば特定のサイトからのジャンプを禁止できますが。 shinobi.jpに無料で使えるアクセスカウンタがあるので、それを使えば何処からのジャンプや、検索エンジンでどういうキーワードでジャンプしてきたかが解析できますし、アクセス禁止にもできます。

mew2008
質問者

お礼

ご回答をありがとうございます。 早速調べてみました。 大変使いやすそうで気に入ったのですが、 「要求されたURLはNINJA TOOLSの忍者バリアーで制限されています」 と、相手の神経を逆撫でしかねない一文が表示されてしまうので、 なるべくなら、 「ページは存在しません」といった表示に留めることができないかと考えております。

関連するQ&A