JavaScriptのリンク制限
無料サーバでもできるJavaScriptのリンク元制限について。
私はJavaScriptに関してド素人なので間違ってたらごめんなさい。
以前の記事で少し書きましたが、JavaScriptのリンク元制限は「海外ファンサイト事情」や「裏サイトオーナーのための Small Tips」で紹介されています。その他にもJavaScriptで制限をする方法はあちこちで紹介されています。
それぞれ多少違っても、基本は以下のようなスクリプトのようです。
----------
<script language="JavaScript"><!--
if(document.referrer.indexOf("***.jp")!=-1)
window.location.href="http://redirect.***.jp";
// --></script>
----------
<script language="JavaScript"> 〜 </script>までをコピー。
HTMLの<head> 〜 </head>の間に貼り付けて下さい。
意味は「もし、リンク元が***.jpを含んでいたら、http://redirect.***.jpへ飛ばしちゃえ」と書いてあります。
意味を理解したい時は下記のサイトが分かりやすいと思います。
JavaScript basic samples:リファレンス(比較演算子・referrer・indexOf()の項目を)
こんな感じで、スクリプト自体はシンプルなのです。が…。
例えば複数のページに適用させたい時。
または複数のページに適用させた後、リンク制限先が増えてしまった時、いちいち全部にJavaScriptを入れ直すようでは、あまり現実的ではありません。
(裏サイトオーナーのための Small Tipsにも紹介されていますが)JavaScriptを外部ファイルに保存して呼び出す方法が良いのでは無いかと思います。
詳しくは下記のサイトなどを参考に。
とほほのWWW入門:JavaScript 外部ファイル
具体的には、JavaScriptの始まり(<script language="JavaScript"><!--)とJavaScriptの終わり(// --></script>)を取り除いた部分をメモ帳になどにコピーし、「sample.js」と言う名前で保存(.jsさえ合っていたらsampleの部分は何でも良い)
---- ↓上記の例ではこの部分
if(document.referrer.indexOf("***.jp")!=-1)
window.location.href="http://redirect.***.jp";
---- ↑上記の例ではこの部分
↓
サーバにアップロード。
↓
各HTMLの<head> 〜 </head>の間に
<script type="text/javascript" src="アップロードしたURL/sample.js"></script>
と入れればOK
CSSの外部ファイルと同じような感じですね。
このようにしておけば、制限したいリンク元の変更も、ジャンプ先の変更もsample.jsさえ書き直せば良いので、一度で済みます。
じゃあ、複数のリンク元を拒否したい時はどうすれば良いのか。
うーん、単純に
----------
//拒否その1
if(document.referrer.indexOf("拒否URLの一部")!=-1)
window.location.href="ジャンプ先URL";
//拒否その2
if(document.referrer.indexOf("拒否URLの一部")!=-1)
window.location.href="ジャンプ先URL";
----------
と増やしていけば大丈夫じゃないかなあ。
でも、これじゃ冗長かと思って素人ながら作ってみたのは下記のような感じ。
----------
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" ;
-----------
||は「または」と言う意味です。
私の環境で試したかぎりは動いています。(.jsファイル例)
Google経由で拒否。sample.html経由で拒否。ここから直接で許可。
間違ってたらごめん。
リンク制限の注意にいつも書かれる通り、ノートンなどリンク元を伝えないソフトを入れている相手には効きません。また、URLを手打ちまたはコピペして来る人には効きません。
そして、これはJavaScriptを切っている人にも効きません。
しかし、「(METAタグでも)検索除け」&「大手検索経由のアクセスを禁止」とすれば、馬鹿にならない程度の効果はあるのでは無いでしょうか(また、多くのCGI+JavaScriptのアクセス解析は、JavaScriptのdocument.referrerでリンク元を調べているようなので、アクセス解析に禁止URLの痕跡が残る事は無いのでは)。
JavaScriptの良いところは、どのサーバでも使えることと、もし、HTMLがいじれるレンタルCGiなら、JavaScriptを挿入する事で、大手検索からの人をある程度ブロックできる事でしょうか。(あくまで、禁止リンク経由で来た人を誤魔化しているだけですので、検索除けとは違います。間違わないように)
しかし、広告が入る無料サーバも、無料レンタルCGIも、アクセスが上がらない事には成り立たない商売です。それは分かっていて下さい。無料で貸してもらっておきながら、人に来て欲しくない。検索除けしたい。と騒ぐのは、個人的にあまり良い事だとは思いません。おまけに広告隠しまでやった日には、盗人猛々し…
人にあまり来て欲しくないページを作る時には、やっぱり有料サーバを借りる方がおすすめです(でも有料のサーバを借りると、大体は.htaccessが使えるので、あまりJavaScriptの意味が無いかもですね。サーバに負担をかけたく無い時には良いかも)
また、.htaccessを使ったリンク元制限は、ページを表示する前に拒否するのに対し、JavaScriptの制限は「一度ページを読み込み→そこにあるJavaScriptを実行→ジャンプ」と言う手順になりますので、処理の遅いパソコンでは、隠したいページが一瞬表示されてしまう事があります(実際、私の古いパソコンだと表示された)
ついでにJavaScriptが長いほど、処理に時間がかかりますから、制限するリンク元は、なるべく少なくする方が良いと思います。
最後におまけ。
私の作った例では、ジャンプ先をGoogleにしてありますが、これだと「あ、何かで飛ばしてるな?」とバレバレです。
私なら、こことか、こことかに飛ばすかなあ。
あるいは自作で作ったこんなページとかね(本当にページが存在しないんじゃ無いよ)
「禁止リンク元から来たでしょう!帰ってください!!!!」なーんて書いたページに飛ばすのはセンス無いですよ。
私はJavaScriptに関してド素人なので間違ってたらごめんなさい。
以前の記事で少し書きましたが、JavaScriptのリンク元制限は「海外ファンサイト事情」や「裏サイトオーナーのための Small Tips」で紹介されています。その他にもJavaScriptで制限をする方法はあちこちで紹介されています。
それぞれ多少違っても、基本は以下のようなスクリプトのようです。
----------
<script language="JavaScript"><!--
if(document.referrer.indexOf("***.jp")!=-1)
window.location.href="http://redirect.***.jp";
// --></script>
----------
<script language="JavaScript"> 〜 </script>までをコピー。
HTMLの<head> 〜 </head>の間に貼り付けて下さい。
意味は「もし、リンク元が***.jpを含んでいたら、http://redirect.***.jpへ飛ばしちゃえ」と書いてあります。
意味を理解したい時は下記のサイトが分かりやすいと思います。
JavaScript basic samples:リファレンス(比較演算子・referrer・indexOf()の項目を)
こんな感じで、スクリプト自体はシンプルなのです。が…。
例えば複数のページに適用させたい時。
または複数のページに適用させた後、リンク制限先が増えてしまった時、いちいち全部にJavaScriptを入れ直すようでは、あまり現実的ではありません。
(裏サイトオーナーのための Small Tipsにも紹介されていますが)JavaScriptを外部ファイルに保存して呼び出す方法が良いのでは無いかと思います。
詳しくは下記のサイトなどを参考に。
とほほのWWW入門:JavaScript 外部ファイル
具体的には、JavaScriptの始まり(<script language="JavaScript"><!--)とJavaScriptの終わり(// --></script>)を取り除いた部分をメモ帳になどにコピーし、「sample.js」と言う名前で保存(.jsさえ合っていたらsampleの部分は何でも良い)
---- ↓上記の例ではこの部分
if(document.referrer.indexOf("***.jp")!=-1)
window.location.href="http://redirect.***.jp";
---- ↑上記の例ではこの部分
↓
サーバにアップロード。
↓
各HTMLの<head> 〜 </head>の間に
<script type="text/javascript" src="アップロードしたURL/sample.js"></script>
と入れればOK
CSSの外部ファイルと同じような感じですね。
このようにしておけば、制限したいリンク元の変更も、ジャンプ先の変更もsample.jsさえ書き直せば良いので、一度で済みます。
じゃあ、複数のリンク元を拒否したい時はどうすれば良いのか。
うーん、単純に
----------
//拒否その1
if(document.referrer.indexOf("拒否URLの一部")!=-1)
window.location.href="ジャンプ先URL";
//拒否その2
if(document.referrer.indexOf("拒否URLの一部")!=-1)
window.location.href="ジャンプ先URL";
----------
と増やしていけば大丈夫じゃないかなあ。
でも、これじゃ冗長かと思って素人ながら作ってみたのは下記のような感じ。
----------
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" ;
-----------
||は「または」と言う意味です。
私の環境で試したかぎりは動いています。(.jsファイル例)
Google経由で拒否。sample.html経由で拒否。ここから直接で許可。
間違ってたらごめん。
リンク制限の注意にいつも書かれる通り、ノートンなどリンク元を伝えないソフトを入れている相手には効きません。また、URLを手打ちまたはコピペして来る人には効きません。
そして、これはJavaScriptを切っている人にも効きません。
しかし、「(METAタグでも)検索除け」&「大手検索経由のアクセスを禁止」とすれば、馬鹿にならない程度の効果はあるのでは無いでしょうか(また、多くのCGI+JavaScriptのアクセス解析は、JavaScriptのdocument.referrerでリンク元を調べているようなので、アクセス解析に禁止URLの痕跡が残る事は無いのでは)。
JavaScriptの良いところは、どのサーバでも使えることと、もし、HTMLがいじれるレンタルCGiなら、JavaScriptを挿入する事で、大手検索からの人をある程度ブロックできる事でしょうか。(あくまで、禁止リンク経由で来た人を誤魔化しているだけですので、検索除けとは違います。間違わないように)
しかし、広告が入る無料サーバも、無料レンタルCGIも、アクセスが上がらない事には成り立たない商売です。それは分かっていて下さい。無料で貸してもらっておきながら、人に来て欲しくない。検索除けしたい。と騒ぐのは、個人的にあまり良い事だとは思いません。おまけに広告隠しまでやった日には、盗人猛々し…
人にあまり来て欲しくないページを作る時には、やっぱり有料サーバを借りる方がおすすめです(でも有料のサーバを借りると、大体は.htaccessが使えるので、あまりJavaScriptの意味が無いかもですね。サーバに負担をかけたく無い時には良いかも)
また、.htaccessを使ったリンク元制限は、ページを表示する前に拒否するのに対し、JavaScriptの制限は「一度ページを読み込み→そこにあるJavaScriptを実行→ジャンプ」と言う手順になりますので、処理の遅いパソコンでは、隠したいページが一瞬表示されてしまう事があります(実際、私の古いパソコンだと表示された)
ついでにJavaScriptが長いほど、処理に時間がかかりますから、制限するリンク元は、なるべく少なくする方が良いと思います。
最後におまけ。
私の作った例では、ジャンプ先をGoogleにしてありますが、これだと「あ、何かで飛ばしてるな?」とバレバレです。
私なら、こことか、こことかに飛ばすかなあ。
あるいは自作で作ったこんなページとかね(本当にページが存在しないんじゃ無いよ)
「禁止リンク元から来たでしょう!帰ってください!!!!」なーんて書いたページに飛ばすのはセンス無いですよ。