2012-04-11 19 views
0

javascriptで何かを追加すると、ウェブサイトの誰かのウェブサイトのURLをチェックして、そのウェブサイトの特定のページにリダイレクトすることができますか?それはURLでmydirectoryなどを持っているので、例えば...URLが一致するとJavaScriptの問題が発生する

我々は、誰かがmysite.com/mydirectory/anyfile.phpあるいはmysite.com/mydirectory/index.phpに行ってきましたので、もし、mydirectoryなどになります、のためにチェックしたい文字列は、javascriptのは、そうでない場合は、mysite.com/index.phpに自分のページ/ URLをリダイレクトします一致が見つからない場合は、リダイレクトされませんが、私は以下のコードを使用しています...

var search2 = 'mydirectory'; 
var redirect2 = 'http://mysite.com/index.php' 

if (document.URL.substr(search2) !== -1) 
    document.location = redirect2 

それに伴う問題、それは常に見つけ一致がないにもかかわらず、私のためにリダイレクトすることで、誰にもありません何が間違っているのかを知っていて、これを行うためのより速く/より良い方法がありますか?

+1

は、なぜあなたはこれをやっているのでしょうか?私のJSをオフにしても、私は 'mydirectory'の下でページを見ることができます。 '.htaccess'やルーティング – Joseph

答えて

0

substrは、この状況で必要なものではありません。文字列から部分文字列を抽出します。代わりにindexOfを使用します。

if(window.location.pathname.indexOf(search2) !== -1) { 
    window.location = redirect2; 
} 

それは、サーバー側でこのリダイレクトを行う方が良いでしょう可能であれば。それは常に動作し、より多くの検索エンジンにやさしく、より速くなります。ユーザーがJavaScriptを無効にすると、リダイレクトされません。

2

使用String.indexOf()代わり:

if (window.location.pathname.indexOf('searchTerm') !== -1) { 
    // a match was found, redirect to your new url 
    window.location.href = newUrl; 
} 
+0

の' pathname'のようなより良いソリューションを見ている方が 'href'よりも優れています.hrefを使うと、リダイレクトが発生します:' http://www.example.com/foo.php?someParameter=mydirectory ' –

+0

@MattGreerはhrefを読み込んでもリダイレクトされません。 – jbabey

+0

hrefの使用は、上のコメントの私の例のように誤検出を意味する可能性があります。 –

関連する問題