例えば、
新しいドメインに変えたーーとか、
リニューアルするから一時的にこのページを表示してほしいーー
って場合にリダイレクト処理などが用いられます。
この上記の2つは両方リダイレクト処理をしているのですが、意味合いが違います。
リダイレクトの種類
リダイレクトには何種類かあって、どういった状態・用途のリダイレクトかを表すことができます。
それが301や302、303や307などで表されています。
それじゃあどういうときにどのリダレクトの種類を使えばいいか見ていきましょう。
301リダイレクトを使うとき
意味合い:恒久的なリダイレクト処理を行うときに指定する。
どういうときに使う?:
これから先こっちにリダイレクトします!ってときに使いましょう。
使うシーン:
・新しいドメインに内容を引き継いでの運用
・ページのURLの変更
302リダイレクトを使うとき
意味合い:一時的なリダイレクト処理を行うときに指定する。
どういうときに使う?:
ちょっとしばしの間こっちにリダイレクトします!ってときに使いましょう。
使うシーン:
・メンテナン ス時に一時的に別ページの表示
303リダイレクトを使うとき
意味合い:一時的なリダイレクト処理を行うときに指定する。ただし、リダイレクト先にはGETメソッドでリダイレクトする。
どういうときに使う?:
一時的なリダイレクトで尚且GETメソッドでリダイレクトする場合に使いましょう。
使うシーン:
・フォーム画面でPOSTメソッドで通信した際に入力内容によってGETメソッドで確認ページやその他のページへのリダイレクト
307リダイレクトを使うとき
意味合い:一時的なリダイレクト処理を行うときに指定する。ただし、リダイレクト先にはリダイレクト元のメソッド(GETメソッド or POSTメソッド)を引き継ぐことを保証したリダイレクトをする。
どういうときに使う?:
一時的なリダイレクトで尚且メソッドを引き継いでリダイレクトしたい場合に使いましょう。
使うシーン:
・フォームで何かをPOSTでA.phpに送信するが、B.phpにリダイレクトする。(POSTメソッドで)
302と303、307との違い
302、303、307はどれも一時的なリダイレクトになります。
303は必ずGETでリダイレクトする。
307はリクエストメソッドをそのまま引き継いでリダイレクトします。どちらかというと307に関してはメソッドの変更は禁止されている。(メソッドが保証されている)
なので、メソッドを引き継がないといけないかどうかで決めたらいいかなと思います。
301は気をつけないといけない!?
301リダイレクトもリダイレクト処理をしてくれますが、意味合いが異なってきますので何も考えずに設定するのはおすすめしません。
なんで?って思った方は下記をチェック!
まとめ
ドメインを変えたりするなどの強力な理由がないのであれば、まずは302でもよいかもしれません。302なら後から301に変えることが容易にできますので。