電子書籍の厳選無料作品が豊富!

こんにちは!初めての質問なのでちょっと緊張していますが、宜しくお願い致します。

今私は直リンクを弾くスクリプトを設置中です。
下記のものがそうなんですが…。



<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/
使っているのはここのスクリプトです。参考までに。

A 回答 (1件)

こんにちは。



document.referrerは正しく返らない(空欄が返る)ことがあります。
正規のルートで来られても、「お気に入り」から来たのと
同じ動作をしてしまっているのかもしれません。

例えば、index.htmlからかならず入ってほしい場合なら、
index.htmlに

function hoge(url){
 myloc = window.location;
 location.href = url + "?ref=" + myloc;
}

というwindow.location(現在のURLを返す)関数を作っておき、

<a href="javascript:hoge(’next.html’;);">ENTER</a>

で呼び出し、next.htmlでデコード(だっけな?)すれば
できそうです。

単純にアクセス制限をかけるなら.htaccessとかあるようですが。
そのあたりはあまり詳しくないです。

的外れだったらすみません。
    • good
    • 0
この回答へのお礼

お返事、ありがとうございます。

document.referrerではいまいち不正確なんですね。
教えて下さった記述にしてもう一度やってみます!
それが駄目でしたら.htaccessでやってみようかなと思っています。
どうもありがとうございました!

お礼日時:2002/08/26 16:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報