2016-08-31 13 views
1

すべてのリクエストをwww以外の安全なURLにリダイレクトしようとしています。しかし、私のコードがhttps://wwwのときにリダイレクトに失敗しています。これは、動作していない唯一のURLです、なぜ誰も助けてhttps://wwwが計画どおりにリダイレクトしないのを理解できますか?ここに私のコードです:SSL WWWがリダイレクトできません

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    Options +FollowSymlinks 

    RewriteCond %{HTTPS} =on 
    RewriteRule^- [env=proto:https] 
    RewriteCond %{HTTPS} !=on 
    RewriteRule^- [env=proto:http] 

    RewriteCond %{HTTPS} !=on 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule^%{ENV:PROTO}://%1%{REQUEST_URI} [R=301,L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 

私は私のルーティングのためにフライトphpを使用しています。

答えて

0

あなたはwwwの書き換えを確実にするためにcontitionを追加しました。 SSL以外の要求に対してのみ有効です。あなたがリダイレクトエラーを取得されていませんので、

削除するRewriteCondの%{HTTPS}!=

+0

「このサイトは安全な接続を提供できません」と表示されています。私はこの文字列から削除すると仮定します: 'RewriteCond%{HTTPS}!= on RewriteCond%{HTTP_HOST}^www。(。+)$ [NC] RewriteRule ^%{ENV:PROTO}:// %1%{REQUEST_URI} [R = 301、L] '。ご回答有難うございます。 –

+0

「私はまだ...」あなたは何を得ているかについて何も言わなかった。あなたは 'https:// www'がリダイレクトされていないと言っていましたが、私はあなたに書き直しが原因だと言いました。それを除く!今あなたが言うことは、SSLが既にネゴシエートされている "後"に起こるリダイレクトには何の関係もないCAについて不平を言うブラウザのように聞こえる。 wwwの無効な証明書を提示しないようにする場合は、できません。しかし、これはリダイレクトとは別の問題です。 –

+0

誤解をおかけして申し訳ありませんが、証明書はwwwも有効です。私は、https上でwww以外のものへのhttps wwwのリダイレクトを達成しようとしています。これは私の現在の.htaccessセットアップで動作しない唯一のプロトコルです。 –

0

に、SSLの設定ミスの問題がある可能性があります。 「このサイトは安全な接続を提供できません」というエラーは、何らかの理由で吹くことがあります。下記のように1つずつ説明しましょう。

  • SSL証明書が信頼できるCA(自己署名)からのものではありません。
  • SSL証明書の有効期限が切れています。
  • SSLの設定ミスによって、このようなエラーメッセージが表示されることもあります。
  • コンピュータの時刻と日付が正しくありません。
  • SSL証明書(SHA1)の古いバージョンまたは安全でないバージョンを使用している可能性があります。
  • 古いウェブブラウザを使用しています。

上記の点を確認することをおすすめします。

提案:

  • そのルートチェーン大手のWebブラウザ(すなわちComodoまたはSymantec)に既に存在する、信頼できる認証局から有効な証明書を取得します。
  • SSL証明書を更新します。
  • SSL checker toolであなたのウェブサイトをチェックしてください。
  • 時間と日付を完璧にします。
  • 古いバージョンのSSL証明書を使用している場合は、SSLプロバイダに再発行を依頼してください。
  • ブラウザを最新の状態にします。

この情報は、あなたの問題を解決するのに役立ちます。

関連する問題