SSL 証明書を購入し、設定で SSL 設定を有効にし、両方の構成ファイルを https に変更しましたが、http://bit.ly/TCkEBvにアクセスすると、最初のページは https で、残りは https ではありません。どうすればこれを修正できますか?
3 に答える
これが古いスレッドであることは認識していますが、最近の Google SSL-everywhere インデックス作成の変更を考慮すると、関連性があると考えました。次の例では、OC がすべてのリンクで https を使用するようにします。system/library/url.php の 3 文字を変更する必要があります。彼らはこれをフォーラムで削除しましたが、これは理解できますが、混合 SSL マルチストアで 1 週間の実稼働トラフィックで問題なく実行しました。
警告: お使いの mod は異なる場合があります - これを有効にした後、テストでそれらすべてを実行してください...特にリダイレクト マネージャー。1.5.6 の調整は次のとおりです。
store/system/library/url.php を開き、$url = $this->url;
18 行目付近の IF ステートメントを見つけます$url = $this->ssl;
。
PS: また、https-preferred を使用してヘッダーとして送信するための非常にテストされていない方法がありますが$response->addHeader('Strict-Transport-Security: max-age=31536000');
、index.php 以外に配置するのに最適な場所がわかりません。また、テストでは機能しますが、すべてのサーバーへの影響は不明です。ヘッダー コントローラーは論理的に見えますが、すべての OC 領域がヘッダー コントローラーを使用しているわけではありません :)。そのための最適な配置を試してみてください.... $url レプリケータで動作しているように見えても、それをしないでください。
フォーラムのスレッドによると、これは実際にはカートの設定方法だけのバグではありません。つまり、ほとんどのページはHTTPSとして設定されておらず、HTTPS以外のリンクをクリックするとHTTPに戻ります。
example.org という名前のドメインがあるとします。コードを変更する代わりに、Apache でこれを行うことができます...
Domain-SSL.conf に加えて、その構成を Domain.conf にコピーし、443 の代わりにポート 80 を使用するように編集できます。
次に、DirectoryIndex の直前にあるサーバー定義の最上部にこの行を追加します...
Redirect / https://example.org
これにより、すべてのリクエストが SSL 構成にリダイレクトされ、すべてのリンクの前に https:// が追加されます。OC のコード変更は不要です。
これは、忙しい本番サーバーで数年間、問題なく動作しています。