2011-02-07 18 views
1

私は単純なリダイレクトを探していません。ドメイン名に基づくJavaScriptリダイレクト

私がしようとしているのはこれです。

人Aの負荷サイトBOB.comとページX.
人Bの負荷のサイトへのリンクをクリックTIM.comと同じページXにリンクをクリック

ページXはそれでJavaScriptのコマンドを持っていますつまり、ユーザーがサイトBob.comから来て、Bob /helloにリダイレクトしたとします。
ユーザーがTIM.comから来た場合は、Tim.com/helloにリダイレクトします。
ユーザーがetherから来ていない場合は、Frank.com/oppsにリダイレクトします。

このページXでは、複数のドメインで404エラーが処理されるため、「.com」までドメイン名を見る必要があります。 ".com"を過ぎても無視されます。

これは私が始めたスクリプトです。

<script type='text/javascript'> 
var d = new String(window.location.host); 
var p = new String(window.location.pathname); 
var u = "http://" + d + p; 
if ((u.indexOf("bob.com") == -1) && (u.indexOf("tim.com") == -1)) 
{ 
u = u.replace(location.host,"bob.com/hello"); 
window.location = u; 
} 
</script> 
+0

[OK]を、私は、私はJavaScriptのコーダーのあまりないです言及する必要があります。 :) 私がdocument.referrerを使用すること以外に助けてくれるなら、大きな助けになるでしょう。 –

答えて

6

使用document.referrer

if(/http:\/\/(www\.)?bob\.com/.test(document.referrer)) { 
    window.location = "http://bob.com/hello"; 
} 

else if(/http:\/\/(www\.)?tim\.com/.test(document.referrer)) { 
    window.location = "http://tim.com/hello"; 
} 

else { 
    window.location = "http://frank.com/oops"; 
} 

代わりに正規表現で、あなたが最初に行ったようにあなたがindexOfを使用することができますが、それはまたthisisthewrongbob.comthisisthewrongtim.comにマッチします。正規表現はより堅牢です。

+0

私はJavaScriptのコーダーではないと言えます。 :)それは答えのように見えますが、私のコードにそれを結びつける方法がわからない、またはこれが最初から始める必要があることを意味する場合は。 –

+0

これは、ユーザーがこのページに来たURLを持っています。必要な情報、「Tim.com」や「bob.com」など –

+0

@webmaster alex私は答えを更新しました:) –

1

document.referrerは、ユーザーがどこから来たのかを見つけるために

0

使用document.referrerある場所です。

更新されたコードが

example 作業
<script type='text/javascript'> 
    var ref = document.referrer, 
     host = ref.split('/')[2], 
     regexp = /(www\.)?(bob|tim).com$/, 
     match = host.match(regexp); 

    if(ref && !regexp.test(location.host)) { 
    /* Redirect only if the user landed on this page clicking on a link and 
    if the user is not visiting from bob.com/tim.com */ 
    if (match) { 
     ref = ref.replace("http://" + match.shift() +"/hello"); 
    } else { 
     ref = 'http://frank.com/oops'; 
    } 

    window.location = ref; 
    } 
</script> 

である(それはむしろリダイレクトするよりもメッセージが表示されます)

関連する問題