2016-08-13 9 views
1

最近ドメインをhttpsにリダイレクトし始めました。特にSafariで、特にモバイルで「リダイレクトが多すぎます」というエラーが発生しています。すべてのコンピュータと他のブラウザですべて正常に動作します。HttpsによってSafariでリダイレクトが多すぎます

ここではリダイレクトをどのように行っていますか。メインドメインのための

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] 
RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteRule^https://example\.com%{REQUEST_URI} [R=301,L,NE] 

それは私のSSLの問題を引き起こしていたと私はDNSの伝播にいくつかの問題を修正したので、私はまた、CloudFlareのを無効に。

EDIT:

それはコンピュータを除くすべてのサファリのブラウザに影響を与え、キャッシュを削除しても問題が解決しません。私は1つのドメインしか持っていませんが、いくつかのサブドメインがあります。

私は.htaccessファイル内の他のディレクティブを持っている:

RewriteCond %{HTTP_HOST} ^example.com$ [OR] 
RewriteCond %{HTTP_HOST} ^example.com$ 
RewriteRule ^folder\/?(.*)$ "http\:\/\/example\.com\/all\-categories\/folder\/$1" [R=301,L] 

EDITは:

変更ホストが私のために、この問題を解決した解決しました。

+0

この問題は1台のマシン(?)で1つのブラウザにのみ影響する場合、クライアント側のキャッシュ問題を強く示唆しています。 .htaccessのディレクティブに何か問題があった場合、_all_マシンの_all_ブラウザに影響します。複数のドメインがありますか? .htaccessファイルに他の指示がありますか? – MrWhite

答えて

0
RewriteRule ^folder\/?(.*)$ "http\:\/\/example\.com\/all\-categories\/folder\/$1" [R=301,L] 

あなたはhttpsすべてをリダイレクトしているので、あなたはまた、上記のリダイレクトでこれを行うべきです。そうしないと、追加の(不要な)リダイレクトが発生します。私はまた、正規表現と置換片付けている

RewriteRule ^folder/?(.*) https://example.com/all-categories/folder/$1 [R=301,L] 

:ように、これは、書き換えされなければならない(これは、cPanelのは、生成する何かのように見えますが?)。 RewriteRuleの置換記号のすべてのバックスラッシュエスケープ(と二重引用符)は必要ありません。また、RewriteRuleパターンのバックスラッシュエスケープも余分です。

しかし、これだけでSafari(モバイル)を満たすのに十分かどうかは疑問です。 (?)

+1

ご意見ありがとうございます。最近私のウェブサイトが頻繁にダウンしていたので、私はウェブホストを変更することにしました。 – PatL

+0

新しいホストで何か不運? – MrWhite

+1

すべてが新しいホストでうまく動作しますが、私はリダイレクトを書き直しても、よりクリーンなコードを作成できます。 – PatL

0

CloudFlareのフレキシブルSSLを使用している場合、 Webサーバーは、接続がSSLを介して行われるべきときとそうでないときを正しく識別することができないことがあります。

これを解決するには、install Mod_CloudFlare on your webserverを試してください。そうしないと、SSL環境変数をApacheのX-Forwarded-Protoヘッダーから設定することができます。htaccessの:

SetEnvIfディレクティブXフォワード・プロトHTTPS HTTPS =

+0

CloudFlareを無効にしました。 – PatL

0

にIは、以下の方法

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

オフするRewriteCondの%{HTTPS}を使用してそれを修正しました

が原因でエラーが発生しています。

するRewriteCondの%{SERVER_PORT}を使用!それを修正するには、^ 443 $

関連する問題