web-dev-qa-db-ja.com

サブドメインhttp://をhttps://にリダイレクト-リダイレクトが多すぎる

http://sub.domain.comhttps://sub.domain.comにリダイレクトしようとしています。

私はすべての.htaccessおよびPHPスクリプトを試してWebを逆さまにしましたが、それらはすべて"Too Many Redirects"エラーを返します。

私はそれをあきらめたので、解決策をそれほど探していません。

私が不思議に思っていることなぜエラーが出ますかエラーは実際にはどういう意味ですか?私が知る限り、私が試したすべてのスクリプトは一度だけリダイレクトします。

1
Josh N

「リダイレクトが多すぎる」という問題は、リダイレクトが結びついているという事実に起因しています。たとえば、 http://example.comhttps://example.com にリダイレクトし、 https://example.com はリダイレクトして戻りますto http://example.com .

このプロセスは、サーバーによって確立されたリダイレクトカウントに到達するまで何度も繰り返され、それを超えると、サーバーはリダイレクトの処理を停止します。

Apacheでは、ブラウザが処理する舞台裏の自動リダイレクトの代わりに、画面に「このページはここにあります」というメッセージ(実際のリダイレクトページ)を見ると、これを発見できます。

スクリプトをテストするときに行うことをお勧めしますが、スクリプトをキャッシュ不可にして、毎回現在の結果を取得することです。また、ユーザーがサイトのHTTPSバージョンをリクエストしていることを確認し、リクエストがHTTPSでない場合にのみリダイレクトを実行する必要があります。チェックする1つの方法は、ユーザーが接続するサーバーのポート番号を検証し、ポート番号が80の場合、ポート80はHTTPであるため、ユーザーのリダイレクトを実行することです。

もう1つの便利なことは、ページのテスト中にブラウザーで自動リダイレクトをオフにすることです。

それが不可能な場合、redbot.orgを使用して問題を引き起こしているURLを入力すると、HTTPヘッダーの「Location:」の下に新しいURLが表示されます。 「Location:」の値が表示されなくなるまでURLを追跡し続けます。できない場合は、無限のリダイレクトがあります。

2
Mike

CloudFlareから次を参照してください: WordPressでフレキシブルSSLを有効にした後、無限リダイレクトループエラーを修正するにはどうすればよいですか?


CloudFlareの無料のUniversal Flexible SSLオプションを有効にすると、一部のユーザーはリダイレクトループを経験する場合があります。この問題を修正したり、設定を行ったりするには、以下の手順に従ってください:**

WordPressサイト

** 1. CloudFlare Flexible SSL WordPressプラグインまたはWordPress HTTPSプラグインのいずれかをインストールします。多くのWordPressユーザーがこれらのプラグインを使用して、WordPressのリダイレクトループの問題を解決し、https://への移行を容易にしています。

注:これらのプラグインはCloudFlare.comによって作成されたものではありません

  1. CloudFlare WordPressプラグインをインストールして、元のビジターIPがWordPressレベルで返されるようにします。他のプラグインの一部は元のビジターIPに依存している可能性が高いため、CloudFlare WordPressプラグインをインストールすると、ビジターIPはWordPressレベルに戻り、CloudFlareのIPは表示されません。

他のサイト

1. https://でWebサイトにアクセスし、Webサイトがロードされるかどうかを確認します。ユニバーサルSSLを有効にする前にSSLを使用するように設定されたドメインがないため、ブラウザウィンドウの隅を見ると、混合コンテンツのエラー警告が表示される可能性があります。このエラーをなくすには、サイトを調べて、アセットがHTTPではなくHTTPSでロードされていることを確認する必要があります。ソリューションは次の場所にあります。

混合コンテンツエラーの修正に関するMozillaのチュートリアル

WordPressプラグイン:SSL Insecure Content Fixer

  1. パターン**http://*example.com/***に対して常にHTTPSアクションを使用するページルールを作成し、example.comをドメインに置き換えて、すべてのHTTP要求をEdgeのHTTPSにリダイレクトします。

  2. それでもエラーが表示される場合は、Originサーバーでリダイレクトが作成されていないことを確認してください。 WordPressを使用すると、これらは通常「.htaccess」ファイルに作成されます。上記のページルールを使用している場合は、ここでリダイレクトコードを削除して、無限ループを防ぎます。それ以外の場合、ページルールではなくサーバーに実装されたリダイレクトを使用する場合、リダイレクトコードは訪問者から送信されたプロトコルをチェックする「X-Forwarded-Proto」ヘッダーを使用する必要があります。コード自体は次のようになります。

    RewriteCond%{HTTP:X-Forwarded-Proto} = http

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L、R = 301].

2
Abrar Ahmed