.htaccessのリダイレクトエラーは、設定の重複や書き方ミスが原因で発生します。
特に多い原因は以下です。
・HTTPSリダイレクトの二重設定
・wwwあり・なし統一のミス
・301/302の書き方ミス
・WordPressとの設定競合
・サイトが表示されない
・リダイレクトループになる
・ERR_TOO_MANY_REDIRECTSが出る
→ 本記事では、この順番で「確実に直る手順」を解説します。
今すぐ直したい方はこちら(3分で確認)
① .htaccessを初期状態に戻す
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPressこれで直るケースが非常に多い
② HTTPS・www設定を一旦削除
カスタムリダイレクトは一度全削除
③ キャッシュ削除
- ブラウザ
- サーバー
直らない場合は以下を確認
.htaccessリダイレクト設定ミスの主な原因
① HTTPSリダイレクトの二重設定
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]サーバー側でも設定されているとループ発生
② wwwあり・なしの競合
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]HTTPS設定と重なるとループ
③ WordPressとの競合
WordPressのURL設定と.htaccessがズレる
④ リダイレクトルールの重複
同じ処理を2回書いている
⑤ 301 / 302の誤用
意図しない転送になる
正しい.htaccessリダイレクト設定(これが正解)
HTTPS統一(推奨)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]wwwなしに統一
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]ポイント:どちらも同時に書かない(統合する)
HTTPS + www統一(正しい書き方)
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]これが最も安全
WordPressでの注意点(重要)
① URL設定を一致させる
define('WP_HOME','https://example.com');
define('WP_SITEURL','https://example.com');② プラグインとの競合
Redirectionなどと併用NG
③ サーバー設定との重複
Xserverなどは自動HTTPSあり
ERR_TOO_MANY_REDIRECTSが出る場合
.htaccessが原因の可能性が高い
対処手順
- .htaccess初期化
- プラグイン停止
- URL確認
順番にやれば確実に直る
.htaccessリダイレクト設定の注意点
- ① 設定は一箇所で管理
- ② テストしてから反映
- ③ バックアップ必須
.htaccessリダイレクト設定がわからない場合の最終手段
最後に
.htaccessのリダイレクトエラーは
- 重複
- 設定ミス
- 競合
が原因です。正しい書き方にすれば必ず解決します
よくある質問(FAQ)
- Q.htaccessを消しても大丈夫?
- A
WordPressは自動生成されるのでOK。ただし、自動生成された.htaccessは一度確認してバックアップを取っておきましょう。
- Q500エラーになる
- A
記述ミスの可能性が高いです。WordPressで500エラーが出た時の対処法も確認してみて下さい。
- Q反映されない
- A
キャッシュが原因かと思われます。削除してみてください。
- Qどこに書けばいい?
- A
BEGIN WordPress の上に記述で、大丈夫です。

