JavaScriptでリダイレクトを実装する3つの方法 | 初心者向けチュートリアル

JavaScript

この記事ではJavaScriptを使ってURLにリダイレクトする方法を紹介します。リダイレクトとは、ユーザーが特定のURLにアクセスした際に、他のURLに自動的に移動させることを指します。JavaScriptを使うと、このリダイレクトを簡単に実装することが可能となります。

Google推奨のリダイレクト方法は「.htaccess」です。

サーバーサイドでリダイレクト設定ができない場合に使用しましょう。

条件なしでリダイレクト

この方法は、特定の条件なしに、すぐに別のURLへリダイレクトするものです。

window.onload = function(){ 
    location.replace('①リダイレクト先URL'); 
};

このコードは、ページのロードが完了した瞬間に指定されたURL(ここでは ‘①リダイレクト先URL’)にリダイレクトします。

特定のURLを取得してリダイレクト

特定のURLにアクセスしたときだけリダイレクトさせたい場合は、以下のスクリプトを使用します。

window.onload = function(){ 
    var url = location.href; 
    if (url == '①リダイレクト元URL') {
        location.replace('②リダイレクト先URL');
    }
};

このスクリプトは、ページのURLが指定されたURL(’①リダイレクト元URL’)と一致した場合にのみ、別のURL(’②リダイレクト先URL’)へリダイレクトします。

複数のURLを取得してリダイレクト

複数のURLにアクセスした場合にリダイレクトを行いたいなら、下記のようなスクリプトを使用します。

window.onload = function(){ 
    var url = location.href; 
    if ( (url == '①リダイレクト元URL') || (url == '②リダイレクト元URL') || (url == '③リダイレクト元URL') || (url == '④リダイレクト元URL') ) {
        location.replace('⑤リダイレクト先URL'); 
    }
};

このコードは、ページのURLがいずれかの指定されたURL(’①リダイレクト元URL’ ‘②リダイレクト元URL’ ‘③リダイレクト元URL’ ‘④リダイレクト元URL’)と一致した場合、別のURL(’⑤リダイレクト先URL’)へリダイレクトします。

特定のパラメータを取得してリダイレクト

下記のコードは特定のパラメータの値が指定した値であるときにリダイレクトをします。

window.onload = function(){ 
    var params = new URLSearchParams(window.location.search);
    if (params.get('特定のパラメータ名') === '特定のパラメータ値') {
        location.replace('リダイレクト先URL');
    }
};

特定のパラメータがtestparam、特定の値がtest001と指定した場合は、URLがhttps://example.com?testparam=test001

の場合にリダイレクトがかかります。

複数のパラメータを取得してリダイレクト

複数のパラメータ値でリダイレクトを行いたい場合には下記のコードを使用してください。

window.onload = function(){ 
    var params = new URLSearchParams(window.location.search);
    var paramValue = params.get('特定のパラメータ名');
    if (paramValue === '特定のパラメータ値①' || paramValue === '特定のパラメータ値②' || paramValue === '特定のパラメータ値③') {
        location.replace('⑤リダイレクト先URL'); 
    }
};

リダイレクトを行う際の注意点

  • リダイレクトループの防止
    リダイレクトがループすると、ブラウザはページの表示を止めてしまいます。これはユーザーにとって良くない経験ですし、それ自体が技術的な問題であるため、リダイレクトループを引き起こさないように注意しなければなりません。

  • パフォーマンス
    リダイレクトはページの読み込み時間を遅くします。そのため、必要ない場合はリダイレクトを避け、必要な場合でも最小限に抑えるべきです。

  • SEO
    リダイレクトは検索エンジン最適化(SEO)に影響を与えます。特に、302(一時的)リダイレクトはSEOに悪影響を及ぼす可能性があるため、301(恒久的)リダイレクトを使用することが推奨されます。JavaScriptリダイレクトは検索エンジンによって正しく理解されない場合があるため、可能であればサーバーサイドでリダイレクトを実行することが望ましいです。

  • ユーザビリティ
    ユーザーが予期しないリダイレクトは混乱を招く可能性があります。リダイレクトを使用する際には、その理由がユーザーにとって明確であることを確認してください。

  • ブラウザの違い
    全てのブラウザがJavaScriptを同じように解釈するわけではありません。そのため、異なるブラウザでも想定通りの動作をするか確認することが重要です。

JavaScriptでリダイレクトを行う際は、技術的な実装だけでなく、ユーザビリティやSEOの観点からも注意が必要です。

それぞれのコードの使い方や調整方法について、何か質問があれば、気軽にお問い合わせください。この記事があなたのウェブ開発に役立つことを願っています。

記事を書いてる人

バツイチ貧乏ダメおやじ、自宅SE。20代ギャン中、30代アル中、40代再生中。ガラケー時代からWEB開発やってる自宅SEです。

「○○を知りたい!!」「○○が分からない!!」などありましたら、Twitterでもブログでもコメントいただければ、ご期待に添えるように頑張ります!

雨おやじのSNSを覗く!!
JavaScript
雨おやじのSNSを覗く!!
ITkagyo

コメント