301 VS 302
開発中のサイトで、https://でアクセスされたらhttp://にリダイレクトしたり
その逆をやったり、という事案があり、リダイレクトについて諸々調べてたので残しておきます。
HTTPステータスコード
リダイレクトをかます時に、HTTPステータスコードを乗っけることができるらしい。
ほほう。今回のケースだと何か特別乗っけないといけないのかしら?
HTTPステータスコードっていうと、
「403 Forbidden」「404 Not Found」とかいうアレ。
とりあえずいろいろ調べてみる。
参考
HTTPステータスコード - Wikipedia
よく見るHTTPステータスコード一覧とその意味を理解する | SEO HACKS公式ブログ
ざっと見た感じ、301か302かな…?
と思って検索してみたら、案の定「301vs302」みたいな記事がごろごろ。
参考
SEOを正しく行う為に301リダイレクトや302リダイレクトを理解する | SEO Imagination!ブログ
SEO的に301リダイレクトは是が非か? | ランサーズ社長日記
301リダイレクトと302リダイレクト、meta refreshの設定方法や使い方 | WP SEOブログ
Google、モバイル向けサイトのリダイレクトには301よりも302を使うように推奨を変更 | 海外SEO情報ブログ
chromeは、301リダイレクトをキャッシュしている - too_youngの日記
いろいろ貼りましたが、まとめると…
- 301
- 302
- メンテ中など、一時的に移動先URLに移動させたい場合に使用
- googleからの評価などの移動は発生しない
- 移動元も移動先も検索結果に出る(が評価は分散する)?
- ただし、302が何度も検知されるサイトについては301として扱われる場合もある
- 「○○.jp/index.html」のサイトを「○○.jp」として検索結果に出すのにも有効
- 「○○.jp」でアクセスしてもらって「○○.jp/index.html」に遷移させる
- モバイル端末でPCサイトにアクセスした際のモバイルページへのリダイレクトは302推奨
- あくまで一時的なものなのでキャッシュはされない
という感じですかね。
実際の挙動は以下のような感じだそうです。
301リダイレクトと302リダイレクトの違い | 海外SEO情報ブログ
うーん、今回の場合、httpをhttpsに転送したりその逆だったり…
どっちのURLも存在するから引っ越すわけではないし、
かといって一時的な移動でもないし、
っつーかその微妙な違いが上記のパターンにちゃんと当てはまるんかいな…
要するにどちらを使えば…。
…と迷いましたが、301を採用することにしました。
決め手にしたのは、
301の場合→「○○.jp/hoge」から「○○.jp/hoge/」への移動
302の場合→「○○.jp」から「○○.jp/index.html」への移動
というところです。
移動元を検索エンジンに残したいか残したくないかですね。
そして実際にHTTPステータスコードを乗っけたいとき、PHPではhttp_response_codeを使用すればOK。