.htaccess 301 vs 302 リダイレクトの書き方とSEO評価の引き継ぎ
SEO サーバー Apache インフラ htaccess
サイトリニューアルやドメイン移転時に .htaccess ファイルを用いて設定する 301 リダイレクト(恒久的) と 302 リダイレクト(一時的) の選び方、記述ルール、および SEO 上の評価の引き継ぎガイドです。
1. オンライン .htaccess 生成ツール
転送ルール(301 / 302)と転送前後のパスを入力して、エラーのない .htaccess コードを生成します。
🚀 この場で.htaccessを生成する
2. 301 リダイレクト vs 302 リダイレクト 比較表
| 比較項目 | HTTP 301 (Moved Permanently) | HTTP 302 (Found / Temporary) |
|---|---|---|
| 転送の性質 | 恒久的な移動 (二度と旧URLに戻らない) | 一時的な移動 (一時的に他ページを表示) |
| SEO評価 (PageRank) | 新URLへ完全に引き継がれる | 旧URLに保持される (新URLには引き継がれない) |
| 検索インデックス | インデックスが新URLに差し替わる | 旧URLが検索結果に残り続ける |
| 主な用途 | サイト移転、URL構造の変更、HTTP→HTTPS化 | メンテナンス画面表示、A/Bテスト、期間限定特設ページ |
3. .htaccess での 2 つの記述方法
① 最もシンプルな記述:Redirect ディレクティブ (mod_alias)
パス指定で単純に別URLへ飛ばす場合に適しています。
# 301 リダイレクト (旧パス 新完全URL)
Redirect 301 /old-page.html https://example.com/new-page
# 302 リダイレクト
Redirect 302 /campaign.html https://example.com/special-event
② 複雑な条件判定:RewriteRule ディレクティブ (mod_rewrite)
正規表現を用いてパラメータ保持やディレクトリ構造一括置換を行う場合に使用します。
RewriteEngine On
# 301 転送例
RewriteRule ^old-directory/(.*)$ https://example.com/new-directory/$1 [R=301,L]
4. 設定後のレスポンスヘッダー確認コマンド (curl)
ブラウザのキャッシュが原因でリダイレクトの動作確認が正しく行えない場合は、ターミナルで curl -I を実行してステータスコードを直接確認します。
curl -I https://example.com/old-page.html
# 期待される出力結果:
# HTTP/1.1 301 Moved Permanently
# Location: https://example.com/new-page