この質問は次のものに関連しています: サブドメインとSSLでコンテンツが重複しているwww
私の実際のHTACCESS:
RewriteBase /
# this redirects example.com and www.example.com to https - thanks closetnoc @webmasters-stackexange
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_Host} ^loja\.genesiseries\.com$ [NC,OR]
RewriteCond %{HTTP_Host} ^www\.loja\.genesiseries\.com$ [NC]
RewriteRule ^(.*)$ https://loja.genesiseries.com/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_Host} ^www\.loja\.genesiseries\.com$ [NC]
RewriteRule ^(.*)$ https://loja.genesiseries.com/$1 [R=301,L]
#Now start the normal rules
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteRule ^index\.php$ https://loja.genesiseries.com? [R=301,L]
# Tentativa de prevenir erro headers sent
#RewriteCond %{HTTP_Host} !^loja\.genesiseries\.com
#RewriteRule ^(.*)$ http://loja.genesiseries.com/$1 [R=301,L]
これらのルールを使用すると、次のエラーが表示されます。 元のスクリーンショット
混合コンテンツ:
'https://example.com/admin'
のページはHTTPS経由でロードされましたが、安全でないスクリプト'http://example.com/admin/.../script.js'
を要求しました。このリクエストはブロックされました。コンテンツはHTTPS経由で提供する必要があります
:
:
等。
Opencart構成またはSSLルールの問題?
いくつかの設定変更を指すこのリンクを見つけました: http://www.inmotionhosting.com/support/edu/opencart/setting-up-payment-gateways/how-to-enable-ssl-connection-in -opencart
その中に、config.phpの編集が表示されます。
元の:
define('HTTPS_SERVER', 'http://opencart.inmotiontesting.com/');
define('HTTPS_IMAGE', 'http://opencart.inmotiontesting.com/image/');
define('HTTPS_SERVER', 'http://opencart.inmotiontesting.com/admin/');
define('HTTPS_CATALOG', 'http://opencart.inmotiontesting.com/');
define('HTTPS_IMAGE', 'http://opencart.inmotiontesting.com/image/');
新着:
define('HTTPS_SERVER', 'https://opencart.inmotiontesting.com/');
define('HTTPS_IMAGE', 'https://opencart.inmotiontesting.com/image/');
define('HTTPS_SERVER', 'https://opencart.inmotiontesting.com/admin/');
define('HTTPS_CATALOG', 'https://opencart.inmotiontesting.com/');
define('HTTPS_IMAGE', 'https://opencart.inmotiontesting.com/image/');
変更されるのはHTTPからHTTPSへの変更のみであることがわかります。別のサイトを確認しましたが、設定に同意しています。
この質問は解決されましたが、答えはOpenCart側です。どこにでもSSLを行おうとしたときに他の誰かがこのようなことに遭遇した場合のヒントを以下に示します。
-前述のように、config.phpとadmin/config.phpの両方がhttpとhttpsの両方のバリアントを指していることを確認してください。また、コピーされた構成(vTiger同期)を使用するmodが適切に更新されたURLを持っていることを確認してください。 OCでは、常に少なくとも2つの設定を更新する必要があります。
-htaccess強制301に関する警告:テーマ、モジュール、またはvQmodが厳密なhttp://アセットを呼び出さないようにしてください。これはOCの一般的なエラーです。特に、テーマを変更したり、ホイールを再発明して独自のJS /フォントを呼び出すように細工されたMODを作成したりします。厳格なアセットが見つかった場合は、ソース内の相対URL(//)に変更します。これは、安全でないアイテムを修復するための推奨手段です。htaccessは、最初のページアクセス後(クライアント側307およびブロックであるため)、問題を回避またはマスクするだけですおよびHSTSでは動作しません。ほとんどの場合、HSTSを使用します。これは素晴らしいヘッダーです。しかし、上記の安全でないアイテムはまだ機能しません。
-ファイルマネージャを修復して、メディアを接続するときにネイティブ相対URL(//)を使用する必要があります。これにより、将来的に安全でないアイテムを防ぐことができます。修正はこの記事の範囲外ですが、admin/controller/common/filemanager.php
を編集し、$this->data['directory'] = HTTP_CATALOG . 'image/data/';
を$this->data['directory'] = str_replace('http:', '', HTTP_CATALOG) . 'image/data/';
(またはHTTPS_に相当するもの)に置き換える必要があります。
-常にHTTPSモードを使用している場合は、system/library/url.php
を変更して、厳密なHTTPS自己生成アセット(画像、メニュー、リンク、スクリプトなど)を含めるのが賢明です。非常に簡単な修正(1.5.5から1.5.6.4)で、そのファイルにジャンプして$url = $this->url;
を見つけてから$url = $this->ssl;
に変更します。魔法の資産の修正。
-別のルート:htaccessや手動コーディングを必要とせずに、このようなことを支援するOpenCartの「SSL Everywhere Manager」があります。 301、HSTS 307、プリロード、資産、親類、プロキシなどを持っています。
他にもありますが、そのようなものは、常にOpenCartでSSLを使用する場合に最も遭遇するものです。これが将来の人々に役立つことを願っています!