2

httpとhttpsの両方を介してアクセスしているExpressionEngineサイトがあります。一部のアセットは安全にアクセスされないため、ユーザーはhttps経由でアクセスするときにIEからセキュリティ警告を受け取ります(この場合、CSSとそこで参照される画像)。

これは、[General Config]-> [URL to the root directory to your site]にhttp://プロトコル識別子が含まれている場合に発生します(このフィールドを空白にするか、サイトドメイン[example.com]のみに設定するか、プロトコルなしで設定します) [//example.com/]、他の問題が発生するため、それらは実際にはオプションではありません)。問題のあるURLは、もちろん、テンプレートで{path=}または{stylesheet=}を使用して生成されたものです。

ページと同じプロトコルを介してすべてのアセットを配信するための良い方法はありますか?

ありがとう、スコット

4

3 に答える 3

1

これは、EE変数がデフォルトでhttpsを検出または利用しないため、コードで設定する必要があるためです。最も簡単な方法は、アドオンを使用することです。

http://devot-ee.com/add-ons/https-support

http://devot-ee.com/add-ons/dm-force-ssl

http://devot-ee.com/add-ons/force-ssl(商用)

(順不同)私はこれらのどれも使用していないので、私は自分のプラグインを使用しているので、特定のものをお勧めすることはできません。

于 2012-08-31T08:17:34.000 に答える
0

ルートURLを含める必要がありますか?多くの場合、サイトのルートURLを「/」だけに設定します。

もう1つのオプションは、これらのアセットを手動で含めることです(パスヘルパーまたはスタイルヘルパーを使用しないでください)。

URLが現実的なものである場合、それは自動的に現在のプロトコルを継承します。

于 2012-08-31T02:16:36.630 に答える
0

PHPでプロトコルを検出し、system/expressionengine/config/config.phpファイルに動的に設定できます。私は次のようなものを使用します:

$protocol = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") ? "https://" : "http://";
$base_url = $protocol . $_SERVER['HTTP_HOST'];

$config['base_url'] = $base_url . "/";

で、テーマパス、さまざまな画像パス、アップロードパスなどをすべてその基礎から構築できますconfig.php。しかし、タグ$config['site_url']の出力に影響を与えるのはそれです。{path=""}{stylesheet}

詳細については、NSMのConfigBootstrapファイルまたは記事「複数のサーバー用のExpressionEngineの構成」を参照してください。で設定できるすべてのパスについては、 EE2ConfigOverridesconfig.phpを参照してください。

于 2012-09-05T03:56:54.777 に答える