カテゴリ: JavaScript 更新日: 2026/05/27

JavaScriptで簡単にURLをリダイレクトする方法!location.replaceとassignの使い方完全ガイド

JavaScriptでURLをリダイレクトする方法(location.replace, assign)
JavaScriptでURLをリダイレクトする方法(location.replace, assign)

先生と生徒の会話形式で理解しよう

生徒

「先生、Webページを自動で別のページに移動させる方法ってありますか?」

先生

「はい、JavaScriptではURLをリダイレクトする方法がいくつかあります。代表的なのはlocation.replacelocation.assignです。」

生徒

「違いはありますか?」

先生

「あります。簡単にいうと、replaceは元のページに戻れなくなり、assignは戻ることができます。それでは順番に見ていきましょう!」

1. location.replaceとは?

1. location.replaceとは?
1. location.replaceとは?

location.replaceは現在のページを別のURLに置き換える方法です。ブラウザの「戻る」ボタンを使っても、元のページには戻れません。たとえば、ログイン後に自動でトップページに移動させたい場合に便利です。


    // location.replaceの基本例
    location.replace("https://example.com/home");

このコードを実行すると、現在のページは「https://example.com/home」に切り替わります。

2. location.assignとは?

2. location.assignとは?
2. location.assignとは?

location.assignは現在のページから別のURLに移動しますが、ブラウザの「戻る」ボタンで前のページに戻ることができます。ユーザーに前のページに戻る選択肢を残したい場合に使います。


    // location.assignの基本例
    location.assign("https://example.com/about");

このコードを実行すると、「https://example.com/about」に移動できますが、戻ることも可能です。

3. location.replaceとassignの使い分け

3. location.replaceとassignの使い分け
3. location.replaceとassignの使い分け

簡単にまとめると、replaceは戻れないリダイレクト、assignは戻れるリダイレクトです。用途によって使い分けましょう。


    // replaceは戻れない
    location.replace("https://example.com/dashboard");

    // assignは戻れる
    location.assign("https://example.com/profile");

4. ボタンをクリックしたらリダイレクトする例

4. ボタンをクリックしたらリダイレクトする例
4. ボタンをクリックしたらリダイレクトする例

ユーザーがボタンをクリックしたときにページを切り替える方法です。ボタンにイベントを設定してリダイレクトします。


    <button id="redirectBtn">トップページへ移動</button>

    <script>
      document.getElementById("redirectBtn").addEventListener("click", function() {
        location.assign("https://example.com/home");
      });
    </script>

ボタンを押すと「https://example.com/home」に移動できます。

5. 一定時間後に自動でリダイレクトする方法

5. 一定時間後に自動でリダイレクトする方法
5. 一定時間後に自動でリダイレクトする方法

ページを表示してから数秒後に別ページに移動させたい場合は、setTimeoutと組み合わせて使います。


    // 5秒後にトップページに移動
    setTimeout(function() {
      location.replace("https://example.com/home");
    }, 5000);

この例ではページを開いてから5秒後に自動で「https://example.com/home」に移動します。

6. 条件によってリダイレクトを切り替える例

6. 条件によってリダイレクトを切り替える例
6. 条件によってリダイレクトを切り替える例

ログイン状態やユーザーの選択によってリダイレクト先を変えることも可能です。


    var isLoggedIn = false;

    if(isLoggedIn) {
      location.assign("https://example.com/dashboard");
    } else {
      location.replace("https://example.com/login");
    }

ログインしていればダッシュボードに移動、していなければログインページに強制リダイレクトします。

7. URLパラメータを使ったリダイレクト例

7. URLパラメータを使ったリダイレクト例
7. URLパラメータを使ったリダイレクト例

動的にURLを生成してリダイレクトすることもできます。例えば、ユーザーIDに応じて移動先を変える場合です。


    var userId = 12345;
    location.assign("https://example.com/user?id=" + userId);

このコードでは「https://example.com/user?id=12345」に移動します。

8. 注意点とブラウザの挙動

8. 注意点とブラウザの挙動
8. 注意点とブラウザの挙動

リダイレクトは便利ですが、多用するとユーザー体験を損ねたり、ブラウザの戻る操作で混乱することがあります。特にreplaceを使うと戻れなくなるため、重要なページでは慎重に使用しましょう。


    // 注意:replaceは戻れない
    location.replace("https://example.com/important-page");

まとめ

まとめ
まとめ

ここまで、JavaScriptを使ったURLリダイレクトの方法について詳しく学んできました。location.replacelocation.assignの基本的な違いから、ボタン操作や一定時間後の自動リダイレクト、条件分岐やURLパラメータを使った応用例まで幅広く理解できたと思います。replaceは元のページに戻れないリダイレクトを実現するため、ログイン後のトップページ移動や重要なページ遷移に便利です。一方でassignはブラウザの「戻る」操作が可能なため、ユーザーに選択肢を残したい場合に適しています。さらに、setTimeoutを組み合わせることで、一定時間後に自動でページを切り替える処理も可能になり、ユーザー体験を向上させることができます。また、条件分岐を用いることでログイン状態やユーザーの行動に応じた柔軟なリダイレクト処理が可能となり、URLパラメータを動的に生成してリダイレクトすることもできるため、個別ユーザーへの遷移などにも応用できます。ブラウザごとの挙動や戻る操作への影響を考慮しながら、適切にリダイレクト方法を選択することが重要です。

サンプルプログラムまとめ

学んだ内容を整理したサンプルコードです。用途に応じてreplaceassignを使い分けましょう。

 // 元のページに戻れないリダイレクト location.replace("https://example.com/home");
// 戻れるリダイレクト
location.assign("https://example.com/about");

// ボタンクリックで移動
document.getElementById("redirectBtn").addEventListener("click", function() {
  location.assign("https://example.com/home");
});

// 一定時間後に自動リダイレクト
setTimeout(function() {
  location.replace("https://example.com/home");
}, 5000);

// 条件によるリダイレクト
var isLoggedIn = false;
if(isLoggedIn) {
  location.assign("https://example.com/dashboard");
} else {
  location.replace("https://example.com/login");
}

// URLパラメータを使ったリダイレクト
var userId = 12345;
location.assign("https://example.com/user?id=" + userId);
先生と生徒の振り返り会話

生徒

「先生、今日学んだlocation.replacelocation.assignの違いはしっかり理解できました。戻れるか戻れないかで使い分けるんですね。」

先生

「そうです。重要なのはユーザー体験を考えながら適切な方法を選ぶことです。戻れないreplaceはログイン後の画面や重要ページで便利ですし、戻れるassignは情報ページや案内ページで活用できます。」

生徒

「ボタンをクリックしたときや一定時間後に自動で移動する方法も組み合わせると、ページ遷移の柔軟性が増しますね。」

先生

「その通りです。また、条件分岐やURLパラメータを使うことで、ログイン状態やユーザーごとに動的にリダイレクト先を変えられるようになります。応用すればより便利で直感的なWeb体験を提供できます。」

生徒

「理解しました。用途や状況に応じてreplaceassignを選択し、ユーザーの操作やブラウザ挙動も意識して使います。」

先生

「その姿勢が大事です。今回学んだリダイレクトの基本と応用をしっかり身につければ、よりスムーズなWebページ設計ができるようになりますよ。」

関連記事:
カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptの関数に型をつける方法(引数・戻り値)を初心者向けに徹底解説!
New2
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
New3
TypeScript
TypeScriptでExpressのミドルウェアを型安全に定義する方法!バックエンド開発の初心者向け解説
New4
JavaScript
JavaScriptのfilterメソッドで条件に合う要素を抽出する方法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptでフォームの値を取得する方法を徹底解説!valueプロパティの使い道
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptでHTML5バリデーションAPIを使いこなす!初心者でもわかるフォーム入力チェック
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.4
Java&Spring記事人気No4
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで要素を削除する方法(removeChild, removeなど)
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptでオブジェクト指向のカプセル化を学ぶ!初心者でもわかるクラスとプロパティの保護方法
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptの現在日時を取得する方法を完全ガイド!初心者でもわかるDate.now()とnew Date()