JavaScriptによるリンク制限

JavaScriptによるリンク制限

.htaccessが使えない環境の場合、JavaScriptで簡易的にリンク元を判別、 指定ページに飛ばす事でリンク制限が行えます。
ただし、.htaccessがページを表示させる前にブロックするのに対し、 JavaScriptは一度ページを読み込みかけてから、別ページへジャンプ、となるので、 処理の遅いパソコンでは一瞬隠したいページが表示されてしまうことがあります。 .htaccessが使えるならそちらを使う事をおすすめします。

また、JavaScriptのリンク制限は、あくまで人間の目を誤魔化しているだけなので検索よけの効果は皆無です。
URLをコピーペーストして来た人や、ノートンなどリファラを遮断するソフトを入れている人には効きません。またJavaScriptをオフにしている人にも効果がありません。

JavaScriptで特定URLからのリンクを制限

JavaScriptで特定URLからのリンクを制限するような場合はこのようになります。

<script language="JavaScript"><!--
if(document.referrer.indexOf("example.jp")!=-1)
window.location.href="http://redirect.jp";
// --></script>

口語訳

<script language="JavaScript"><!--
もしリンク元にexample.jpを含むなら
http://redirect.jpへ飛ばしちゃえ
// --></script>

<script language="JavaScript">〜</script>までをコピーしし、 HTMLの<head>〜</head>の間に貼り付けてください。 制限したいページ全てに挿入する必要があります。

ただ、普通に貼り付けるだけだと制限したいリンク元やジャンプ先を変更する度に、 スクリプトを入れたHTMLを編集しなおす必要が出て来てしまいます。
なので 実際にはJavaScriptを外部ファイル化して使う方が管理が楽でしょう。外部ファイルについては後述

複数のリンク元を制限したい場合

このパターンで行けるはずです。

<script language="JavaScript"><!--
if(
(document.referrer.indexOf("拒否URLの一部")!=-1) ||
(document.referrer.indexOf("拒否URLの一部")!=-1) ||
(document.referrer.indexOf("拒否URLの一部")!=-1) ||
(document.referrer.indexOf("拒否URLの一部")!=-1) )
window.location.href = "ジャンプ先URL" ;
// --></script>

※拒否された場合は忍者ツールズの404エラーに飛ぶようにしてあります。長くなると処理に時間がかかってしまいますから、最低限の拒否にする事をおすすめします。

参考

JavaScriptの外部ファイル化

JavaScriptでリンクを制限する方法の欠点として、 制限したいHTMLファイル全てにJavaScriptを記入する必要がある事です。 それ自体は仕方ないのですが、もし制限したいURLが増えてしまったり、ジャンプ先を変えたくなったりする度に、 再び全てのファイルを書き直しているのでは、手間も管理も大変です。
ですので、JavaScriptを外部ファイルにしてしまう方が良いでしょう。

手順1:.jsファイルを作ってアップロード

<script language="JavaScript"><!--
if(document.referrer.indexOf("example.jp")!=-1)
window.location.href="http://redirect.jp";

// --></script>

たとえば、上のJavaScriptの赤字の部分をコピーし、メモ帳にペーストして下さい。
次にそのファイルを「sample.js」と言う名前で保存します。 (.jsの拡張子さえ合っていればsampleの部分は任意です)こんな感じです。

次に今作ったsample.jsをサーバにアップロードしてください。

手順2:HTMLと.jsファイルをリンク

次に、アップロードした.jsファイルとHTMLファイルをリンクさせます。

JavaScriptを読み込ませたいHTMLファイル全部の<head>〜</head>の間に、 下のようなタグを入れてください。それでそのHTMLではsample.jsのスクリプトが有効になります。

<script language="JavaScript" src="アップロードしたURL/sample.js"></script>

タグを入れる作業は面倒ですが、一度入れてしまえば、JavaScriptの内容を変更したくなっても、 sample.jsを一度書き直すだけでOKですから楽ちんです。

inserted by FC2 system