リダイレクトエラー

リダイレクトステータスコード

300番台のHTTPステータスコードは、それ自体がエラーを意味するわけではなく、リクエストされたコンテンツが別の場所に移動していることや、ブラウザが前回読み込んだときからコンテンツが変更されていないことを示します。これらのステータスコードは、サイトのアクセスログ(access.log)やcurl -ILコマンドでURLを確認した際に表示されます。意図しないページにリダイレクトされる場合や、リダイレクトが繰り返されるループが発生している場合に、対処が必要になります。

301 Moved Permanently

301リダイレクトは、ページが恒久的に移動したことをブラウザや検索エンジンに伝えるものです。WordPressサイトでは、HTTPSへのリダイレクト、プライマリドメインへの統一(www.の有無)、フォルダのURL末尾へのスラッシュの追加などに使用されます。また、リダイレクトルールを設定して、独自の301リダイレクトを追加することもできます。

ブラウザは301リダイレクトをキャッシュするため、設定を変更または削除した場合は、ブラウザのキャッシュをクリアするか、プライベートブラウジングモードで変更が反映されているか確認してください。また、目的のページに到達するまでに複数の301リダイレクトが発生している場合は、最初のリダイレクト先を最終的なURLに変更することで、不要なリダイレクトを解消できます。

302 Found

302リダイレクトは一時的なリダイレクトであり、ブラウザや検索エンジンには恒久的な移動として記憶されません。WordPressやプラグインでは、アクセス時の状況に応じてリダイレクト先が変わる場合に使用されます。例えば、ログインしていないユーザーが/wp-admin/にアクセスした際にログインページへ転送したり、フォーム送信後に別のページへ移動させたり、訪問者の言語や国に応じたページへ誘導したりする場合です。

ページを恒久的に移動した場合は、302ではなく301リダイレクトを使用してください。これにより、検索エンジンにページの移動を正しく認識させ、移動前のページの検索順位に関する評価を新しいページに引き継ぐことができます。

304 Not Modified

304ステータスコードは、リダイレクトを意味するものではありません。ブラウザに対象ファイルのコピーがすでに保存されており、前回のアクセス時からファイルが変更されていないことをサイト側が確認した場合に返されます。これにより、ブラウザはファイルを再度ダウンロードせず、保存済みのコピーを再利用します。アクセスログ(access.log)に304が記録されるのは正常な動作であり、キャッシュが正しく機能していることを示しています。

ファイルを変更したにもかかわらず、訪問者に古いバージョンが表示される場合は、サイトのキャッシュとCDNのキャッシュをクリアしてみてください。

リダイレクトが繰り返されるエラー(Too many redirects)

リダイレクトが繰り返されるエラーは、ページが正常に読み込まれず、リダイレクトが繰り返される場合に発生するエラーです。通常は、2つの設定が競合していることが原因です。例えば、一方の設定でURL AからURL Bへリダイレクトし、もう一方の設定でURL BからURL Aへ戻すようになっていると、リダイレクトが繰り返されます。一定回数を超えるとブラウザが処理を中断し、「ERR_TOO_MANY_REDIRECTS」や「リダイレクトが繰り返し行われました」のようなエラーメッセージが表示されます。

このようなリダイレクトループは、ほとんどの場合、一時的な問題ではなくサイトの設定に原因があるため、自然に解消されることはありません。特に、SSL、ドメイン、CDN、リダイレクトルールなどの設定を変更した直後に発生することがあります。

リダイレクトが繰り返される2つのURLを特定する

リダイレクトの経路を調べることで、どのURL間でリダイレクトが繰り返されているかを確認し、原因を絞り込むことができます。

  1. ターミナルでcurl -IL https://yourdomain.comを実行するか、オンラインのリダイレクトチェッカーにサイトのURLを入力します。

  2. 各レスポンスのLocationの値を確認します。ここには、リダイレクト先のURLが表示されます。

  3. 繰り返し表示されるURLを比較し、以下の違いがないか確認します。

    • http://とhttps://のみが異なる場合:HTTPとHTTPS間のリダイレクトループを参照してください。

    • www.の有無のみが異なる場合:wwwあり・なし間のリダイレクトループを参照してください。

    • /shop/と/store/など、URLのパスが異なる場合:リダイレクトルールの競合を参照してください。

これらの方法で確認できない場合は、直近で変更した設定から調べてみてください。

HTTPとHTTPS間のリダイレクトループ

HTTPとHTTPS間のリダイレクトループは最も一般的です。ある設定によってアクセスがhttps://にリダイレクトされ、別の設定によってhttp://に戻されることで発生します。

  1. CloudflareアカウントでFlexible SSLを使用している場合: 弊社の前段で独自のCloudflareアカウントを使用している場合は、CloudflareのダッシュボードでSSL/TLS暗号化モードを確認してください。「Flexible」モードでは、CloudflareがHTTP経由でサイトに接続し、サイト側がそのリクエストをHTTPSにリダイレクトするため、リダイレクトループが発生します。弊社でホストするサイトにはすでにSSL証明書が設定されているため、暗号化モードを「Full (strict)」に変更してください。
  2. 別のCDNやプロキシを使用している場合: サードパーティのCDNやプロキシを使用している場合は、弊社への接続にHTTPではなくHTTPSが使用されていることを確認してください。MyKinstaでHTTPS接続を有効にしており、どの設定がリダイレクトループの原因なのかわからない場合は、この機能を一時的に無効にして動作を確認してください。
  3. HTTPSからHTTPへのリダイレクトが設定されている場合: リダイレクトルールやプラグインの設定を確認し、https://からhttp://へのリダイレクトが設定されている場合は削除してください。

wwwあり・なし間のリダイレクトループ

ある設定によってwww.example.comにリダイレクトされ、別の設定によってexample.comに戻されることで発生します。通常、サイトの移行やドメインの変更後に起こる問題です。

  1. ドメインのwwwあり・なしのどちらを使用するか決めます。
  2. MyKinstaで、選択したドメインがサイトのプライマリドメインに設定されていることを確認します。
  3. WordPress管理画面の「設定」>「一般」に移動し、「WordPress アドレス (URL)」と「サイトアドレス (URL)」の両方に、プライマリドメインと同じURLが設定されていることを確認します。https://も含めて一致している必要があります。
  4. これらの項目がグレーアウトして編集できない場合は、wp-config.php 内のWP_HOMEおよび WP_SITEURLが定義されています。これらの設定はWordPress管理画面の設定よりも優先されるため、wp-config.php内でURLを変更してください。

WordPress管理画面にアクセスできない場合は、WP-CLIを使用してURLを確認・変更できます。wp option get siteurlおよびwp option get homeで現在の設定値を確認し、wp option updateで変更してください。

リダイレクトルールの競合

複数のリダイレクトルールが競合し、互いのURLにリダイレクトされることで発生します。同じリダイレクトが複数の場所で設定されている場合によく見られます。以下の設定を確認し、同じリダイレクトが複数の場所で設定されていないことを確認してください。

  • WordPressのリダイレクト系プラグイン

  • 独自のCloudflareアカウントなど、サードパーティのCDNで設定されたページルールやリダイレクトルール

プラグイン

SSL、リダイレクト、セキュリティ、キャッシュ関連のプラグインには、それぞれ独自のリダイレクトを設定する機能があり、プラグイン同士やサーバー側の設定と競合することがあります。プラグインのインストール、更新、設定変更後にリダイレクトループが発生した場合は、該当するプラグインを無効化してください。WordPress管理画面にアクセスできない場合は、WP-CLIでwp plugin deactivate plugin-nameを実行するか、SFTP経由でプラグインのフォルダ名を変更することで無効化できます。

MyKinstaでHTTPS接続を有効にしている場合、同じ機能を持つプラグインは不要です。両方を使用すると、リダイレクトループが発生する原因になりやすいため、どちらか一方のみを使用してください。

Kinstaの監視機能でリダイレクトループが検出されたものの、サイトは正常に表示される場合

弊社の稼働状況監視では、Cookieや保存済みのセッション情報がない、初めてサイトを訪れるユーザーと同じ条件でサイトをチェックします。リダイレクトに関するアラートが届いたものの、ブラウザではサイトが正常に表示される場合、初回訪問者にのみリダイレクトループが発生している可能性があります。

  • Cookieを使用したリダイレクト: 言語や地域に応じたリダイレクト、年齢確認、Cookieの同意画面などでは、Cookieが設定されるまでリダイレクトが繰り返されることがあります。そのため、Cookieをブロックしている訪問者や、検索エンジン、監視ツールなどでリダイレクトループが発生する可能性があります。
  • ブラウザでの確認: プライベートブラウジングモードやシークレットモードでサイトを開き、初めて訪問するユーザーと同じ条件で正常に表示されるか確認してください。

リダイレクトループを解消した後

ブラウザは恒久的なリダイレクト(301)をキャッシュするため、原因を解消した後も、ブラウザ上ではエラーが表示され続けることがあります。

  1. MyKinstaでサイトのキャッシュとCDNのキャッシュをクリアします。
  2. ブラウザに保存されているサイトのキャッシュとCookieを削除するか、プライベートブラウジングまたはシークレットモードで正常に表示されるか確認します。

サポートへのお問い合わせ

上記の設定を確認しても原因が特定できない場合や、リダイレクトループが解消されない場合は、弊社カスタマーサポートまでお問い合わせください。その際は、問題が発生しているURL、curl -ILコマンドまたはリダイレクトチェッカーの実行結果、直近で変更した設定などの情報をお知らせください。

この記事は役に立ちましたか?

© 2013 - 2026 Kinsta Inc. All rights reserved.(全著作権所有)Kinsta®、MyKinsta®、DevKinsta®、Sevalla®は、Kinsta Inc.が所有する登録商標です。登録商標WordPress®はWordPress Foundationの知的財産であり、登録商標Woo®並びにWooCommerce®はWooCommerce, Inc.の知的財産です。WordPress®、Woo®、WooCommerce®の当ウェブサイトでの使用は識別のみを目的としておりWordPress FoundationまたはWooCommerce, Inc.による推奨や承認を意味するものではありません。KinstaはWordPress FoundationまたはWooCommerce, Inc.により認定、所有されておらず、関連会社でもありません。 法的事項はこちらをご覧ください。