特定のURLからの訪問者を入室禁止にする方法
- 特定のURLからの訪問者を入室禁止にする方法について調べてみました。
- 質問者は、特定のサイトでリンクされて、そのリンクから来る閲覧者を、本来のページとは違うURLへとばしたいとのことです。
- JavaScriptを使用して特定のリンク元URLからのアクセスを禁止し、別のURLに飛ばす方法について詳細を知りたいとのことです。
- ベストアンサー
特定のURLからの訪問者を入室禁止にしたい
色々調べてみたのですがよく解らなくて質問させて頂きます。 要は、特定のサイトでリンクされて、そのリンクから来る閲覧者を、本来のページとは違うURLへとばしたいのです。(これでお解りいただけるかな?) 指定URL以外からのアクセスを拒否するJavaScriptとして <script> /* 正規のリンク元URL又はURLの一部(アカウントだけでも可)を記述 */ check = "http://www.xxx.xx/xxxxx/"; /* 正規のリンク元からのアクセスではなかった場合に飛ばすURL */ url = "http://www.***.**/****/"; ref = top.document.referrer; // リンク元のURLを取得 if (ref.indexOf(check) < 0) // refにcheckで指定した文字列が含まれているかチェック document.location = url; </script> と言ったScriptは見つけられたのですが、私が望んでいるのは、 /* 入室許可したくないリンク元URL又はURLの一部を記述 */ check = "http://www.xxx.xx/xxxxx/"; /* 入室許可したくないリンク元URLの場合に飛ばすURL */ url = "http://www.***.**/****/"; ref = top.document.referrer; // リンク元のURLを取得 ???????????????? document.location = url; </script> と言ったScriptで、?????の部分をどう記述して良いのかが解りません。 よろしくお願いいたします。
- ushi24
- お礼率82% (14/17)
- JavaScript
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
サンプルの改良なら下記のように条件を変えれば出来ます。 サンプルは含まれていたら飛ばない設定なので、逆にすれば含まれていた場合、飛ばすようになります。 if (ref.indexOf(check) >= 0) // refにcheckで指定した文字列が含まれているかチェック document.location = url;
関連するQ&A
- 指定URL以外からのアクセスを拒否するJavaScriptとして
指定URL以外からのアクセスを拒否するJavaScriptとして <script> /* 正規のリンク元URL又はURLの一部(アカウントだけでも可)を記述 */ check = "http://www.xxx.xx/xxxxx/"; /* 正規のリンク元からのアクセスではなかった場合に飛ばすURL */ url = "http://www.***.**/****/"; ref = top.document.referrer;// リンク元のURLを取得 if (ref.indexOf(check) < 0)// refにcheckで指定した文字列が含まれているかチェック document.location = url; </script> とあり、試しているのですが、Google chrome4.1ではきちんと動作(指定のアドレスから移動してきちんと表示される、お気に入りから開くと転送される)するのに、Internet Explore8/Firefox3.5では動作しません(指定のアドレスから移動しても転送されてしまう)。 理由がわからないのでどなたか教えて頂けないでしょうか。 よろしくお願いいたします。
- 締切済み
- JavaScript
- 複数の特定のURLからのみアクセスを許可
複数の特定のURLからのみアクセスを許可し、それ以外の場合は、他のページへ飛ばすJavascriptを具体的に教えてくれませんか? 単数の場合は以下のようにすれば良いらいしいのですが、複数の場合灰は分かりません <script> check = "~a.html"; url = "~b.html"; ref = top.document.referrer; if (ref.indexOf(check) < 0) document.location = url; </script>
- ベストアンサー
- JavaScript
- 特定のURL以外からは飛ばす
reff=document.referrer; if(reff.indexOf('http://AAA')!=-1){ location.replace('http://BBB') } (詳細略) http://AAA というURLから来た場合、http://BBBというURLに飛ばすスクリプトですが、 これを http://AAA 以外から来た場合、http://BBBというURLに飛ばすようにするためには どこを改正すればよろしいでしょうか?
- ベストアンサー
- JavaScript
- 直リンクを弾くJavaScriptについて
こんにちは!初めての質問なのでちょっと緊張していますが、宜しくお願い致します。 今私は直リンクを弾くスクリプトを設置中です。 下記のものがそうなんですが…。 <script language="JavaScript"> check = "http://yahoo.co.jp/"; url = "http://oshiete1.goo.ne.jp/"; ref = top.document.referrer; // if (ref.indexOf(check) < 0) // document.location = url; </script> この設定だと、yahooの以下デイレクトリのURL(http://yahoo.co.jp/○○.html)からのアクセスでも閲覧許可になり、gooには飛びませんよね? なのに、見に来てくれた人の中でページが見れないっていう方がいるので困っています。 自分でもテストしてみましたが、「お気に入り」にすると見れなくて、ちゃんとサイト内のリンクからは見れましたが・・・。 一体何がいけないのでしょうか? ちなみに見れないと言ってる人は会員さんで、リンク文字をクリックして出たダイアログにパスワードを入れて、上のスクリプトがあるページにいくといった感じの道順です。詳しい事は連絡が取れないのでわからないのですが。 それともその人が実はお気に入りから入ったのでは…などとも思っています。 自分では上手くいくので本当に謎です。 どうか判る方、宜しくお願いします!!もう藁にも縋る思いです。 http://suepon.com/ 使っているのはここのスクリプトです。参考までに。
- ベストアンサー
- JavaScript
- 簡易的な閲覧制限を行うためにJava scriptを組んでいます
簡易的な閲覧制限を行うためにJava scriptを組んでいます ・特定のリンク元以外は、別のページに飛ばす ・a.htmlのリンクからとんできた際、b.htmlでキーワードを入力させる 以上の2つを行うため、以下のjava scriptを組んで、b,htmlにくみこみました。 が、うまくいきません。なぜでしょうか? ------------------------------ var keyword = "123456" function checkKey(){var key = prompt("Please enter the Password.","") if(keyword != key) {alert('error!'); history.go(-1)} else {void(0);} } checkKey() check = "http://www.xxx.co.jp"; url = "http://www.yyy.co.jp"; ref = top.document.referrer; if (ref.indexOf(check) < 0) document.location = url; ------------------------------ また、check = "http://www.xxx.co.jp"; のアドレス部分は相対アドレスでも可能でしょうか?(たとえば、../aaa/bbb.html などに出来ますでしょうか?) また、check = "http://www.xxx.co.jp"; を複数指定することはできるのでしょうか?出来れば構文を教えていただきたいです。 稚拙な質問で恐縮ですが、どなたかご回答よろしくお願いいたします。
- 締切済み
- JavaScript
- 複数のURLからアクセス制限したい場合
ある特定のURLからのアクセスを、どこかのページに飛ばすには、 <Script Language="JavaScript"> <!-- reff=document.referrer; if(reff.indexOf('相手のURL')!=-1){ location.replace('飛ばす先のURL') } //--> </Script> ですが、相手のURLのところを「複数」指定したい場合には、 どのように書き加えれば良いのでしょうか? 試行錯誤したものの、上手くいかず困っています。 ご意見頂けましたら幸いです。
- ベストアンサー
- JavaScript
- リンク元のファイル名を表示したい。document.referrerだとダメ。(ソース付き)
よろしくお願いします。 index.html→saki.htmlのようにリンクしてある、ファイルが2つあります。 saki.htmlの中で、リンク元のindex.htmlの名称を、document.referrerで表示しようとしています。 しかし、うまく動作しません。 何が違うのでしょうか? ●index.html <html> <body> <a href="saki.html">AA</a> </body> </html> ●saki.html <html> <body> <script type="text/javascript"> <!-- document.write('<p>リンク元URL:' + document.referrer + '</p>'); // --> </script> </body> </html>
- 締切済み
- JavaScript
- URLの一部を見てアクセス制限
ある掲示板の改造で特定のURL以外からのアクセスを弾くものを作りたいのですが うまくいきません。 if($ENV{HTTP_REFERER} ne 'http://www.***.ne.jp/***.html(正規のリンク元)'){ if($ENV{HTTP_REFERER} ne 'http://www.***.ne.jp/***.cgi(掲示板のURL)'){ &error('不正アクセスです'); exit; } } で、始めはうまくいったのですが、掲示板で次のページに行こうとすると URLがhttp://www.***.ne.jp/***.cgi?page=2のように引数が付いてしまい、 不正アクセス扱いされてしまいます。 そこで、引数を覗いたhttp://www.***.ne.jp/***.cgiが含まれるもの全てを アクセス可能にしたいのですが、HTTP_REFERERとどのように一致させるのか わからないのです。 どのように記述すれば良いのでしょうか?
- ベストアンサー
- Perl
- 外部からのアクセスを特定ページに飛ばす方法
<script type="text/JavaScript"> var link = document.referrer; // var paths = link.split("/"); var path = paths[paths.length - 1]; // if(path != "test.html"){ // test.html以外からのアクセスは以下のアドレスに飛ばす location.href = "http://www.○○○.com"; } </script> ========================= 上記のスクリプトを書き入れればよいことは分かりましたが if(path != "test.html") ←この部分をパスではなく、URLで指定する書き方を教えてください。 それと、URLで指定する書き方で複数指定することはできますか? 例えば、ifの部分に、www.○○○.com/test.htmlとwww.○○○.com/sample.htmlの二つのURLを指定する方法を教えてください。 説明下手ですみません。よろしくお願い致します。
- 締切済み
- JavaScript
- <script type="text/javascript" src= について
よろしくお願いします。JavaScriptは、ほとんど触ったことがなく、現在記述がわからず困って今sう。 htmlファイルの中から、外部ファイルに引数(referre)をつけて渡したく思います。で以下のようにやってみたのですが、 index.html <script type="text/javascript" src="http://hoge.com/info.php?ref=' + document.write(document.referrer) + '" charset="Shift-JIS"></script> info.php $ref = $_GET['ref']; echo document.write('$ref'); info.phpから返ってくる答えは「' document.write(document.referrer) ' 」です。 index.html内の JAVASCRIPT部分が間違っているに違いないのですが、どうやって記述すればよろしいでしょうか? よろしくお願いします。
- ベストアンサー
- JavaScript
お礼
ありがとうございました うまく動作しました 実は、質問の前に同じようにやってみて、何故か動作しなかったのですが <head></head>間に書いてやらなくてはいけなかったのですね <body></body>間に書いていました(汗 ともかくうまくいって目出度し目出度しでした ありがとうございました