web-dev-qa-db-ja.com

.htaccessエラー-ERR_TOO_MANY_REDIRECTS

_http://_を_https://_にリダイレクトするこの.htaccessファイルがあります
ルートドメインへのリダイレクトも_www._しました!
_www._からルートドメインまで機能します!ただし、_https://_リダイレクトは行いません! _RewriteCond %{HTTPS} on_を_RewriteCond %{HTTPS} off_または_RewriteCond %{HTTPS} =!on_に設定すると、ブラウザエラーが発生します。

Example.comページが機能していない

mysite.comが何度もリダイレクトしました。

Cookieをクリアしてみてください。

ERR_TOO_MANY_REDIRECTS


1回の編集で500エラーが発生しましたが、以前の状態に戻しました!私がしたことはすべて変更されました:RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}からRewriteRule(.*) https://%{HTTP_Host}%{REQUEST_URI}またはRewriteRule (.*)https://%{HTTP_Host}%{REQUEST_URI}

誰でもこの問題を修正する方法について何かアイデアがありますか?

これは私の_.htaccess_ファイル全体です!

_<IfModule mod_rewrite.c>
 RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}
RewriteCond %{HTTPS} on          [OR]
RewriteCond %{HTTP_Host} ^www\.   [NC]
RewriteRule ^ https://antimalwareprogram.co%{REQUEST_URI}     [R=301,L,NE]
</IfModule>
_
4
user8529958
RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI}

はい、これによりリダイレクトループが作成されます。論理が間違っています。これが言うことは... HTTPSが「オン」の場合、HTTPSにリダイレクトします。 HTTPSが「オフ」(または「オンではない」、つまり!on)であるかどうかを確認する必要があります。

(引数間のスペースを削除することで、おそらく書き換えループが作成されたため、500エラーが発生しました。スペースはApache構成ファイル内の区切り文字です。)

代わりに次のようなものを試してください:

RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_Host} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=302,L,NE]

これはHTTPSとwwwの両方の正規リダイレクトを処理します。最初のルールは必要ありません。 <IfModule>コンテナも必要ありません。

正常に機能していることが確実な場合にのみ、302301に変更します。

テストする前に、ブラウザのキャッシュをクリアしたことを確認してください。 301はブラウザによってハードキャッシュされます。


UPDATE:これでも同じエラーが発生する場合(リダイレクトループ)、SSLがフロントエンドプロキシで管理されている可能性があります。アプリケーション・サーバー。この場合、HTTPSサーバー変数を使用できません。これらの関連する質問を参照してください:


この場合、HTTPS(Apacheサーバー変数)の代わりにENV:HTTPS(環境変数)を使用する必要があるようです。ただし、SSLの管理にフロントエンドプロキシが使用されていることを意味するため、これは標準/サーバー固有ではないことに注意してください。

8
MrWhite