Apache .htaccess の mod_rewrite リダイレクト設定(HTTP→HTTPS / www統一 / 301)
htaccess Apache リダイレクト SEO サーバー管理
結論:30秒で .htaccess リダイレクトを作成する
- HTTP → HTTPS:
RewriteCond %{HTTPS} off->RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] - SEO 引き継ぎ: 恒久移行は必ず
R=301フラグ - 生成ツール: 下のコンポーネントで構文エラーなしで即出力
1. オンライン .htaccess リダイレクト記述生成ツール
転送元 URL と転送先 URL を入力するだけで、構文エラーのない .htaccess コードをブラウザ内で自動生成します。
🚀 この場で.htaccessを生成する
2. mod_rewrite の基本構文とフラグの意味
# ① リライトエンジンの有効化(必須宣言)
RewriteEngine On
# ② 転送条件(RewriteCond: 条件に合致した場合のみ次の Rule を実行)
RewriteCond %{HTTPS} off
# ③ 転送ルール(RewriteRule: 比較パターン 転送先URL [フラグ])
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
主要なフラグ(Flags)の意味
R=301: HTTP 301 Moved Permanently(永久転送)レスポンスを返してブラウザと検索エンジンに通知。L(Last): このルールにマッチした場合、以降のRewriteRuleの評価を即座に終了します。NC(No Case): 大文字・小文字を区別せずにマッチングを行います。QSA(Query String Append): 転送元 URL のクエリパラメータ(?ref=123等)を維持して転送先に付加します。
3. 実務でよく使う .htaccess 設定パターン集
① HTTP から HTTPS へ全アクセスを自動昇格(SSL化)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
② URLの「www なし」へ統一(正規化)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
4. 注意点(ハマりどころ)
- 転送ルールの順序による無限ループ
- 転送ルールの順番を誤ると、A → B → A のように無限ループが発生してブラウザで
ERR_TOO_MANY_REDIRECTSエラーになります。広域なリダイレクト(全体転送)は末尾に配置してください。
- 転送ルールの順番を誤ると、A → B → A のように無限ループが発生してブラウザで
- ブラウザの強力な 301 キャッシュ
- ブラウザは 301 リダイレクトを強固にキャッシュするため、テスト中にミスしたリダイレクトが残り続けます。検証時は開発者ツールの「Disable cache」を入れるか、302 でテスト後に 301 へ変更するのが定石です。