web-dev-qa-db-ja.com

SSLを使用する場合、ソースコードでhttpをhttpsに変更します

最近、JoomlaサイトのいずれかでForce_SSLを有効にしましたが(グローバル構成で「Force SSL」を有効にすることにより)、Googleフォントと JotForm .com (テンプレートとコンテンツの「http://」から読み込まれます)。

この特定のサイトでは、コードを調べ、各http://...参照をhttps://...または//...に変更することで問題を解決しましたが、私の質問は次のとおりです。

ソースコードのhttp://...https://...に自動的に変更するか(プラグインを使用)、または.htaccessファイルを使用することで、これをより簡単または効率的に解決できますか?

5
johanpw

あなたは間違いなくこのためのプラグインを設定したいです。基本的には、http://またはhttps:////だけに書き換えることが目標です。おまけとして、このチェックはタグ内でのみ実行できます(そのため、ページ上のURLには影響しません。

このメソッドを備えたシステムプラグインは、トリックを実行する必要があります。

public function onAfterRender() {
    $buffer = JResponse::getBody();
    $pattern = '~(<[^>]{0,}["\'])(https?://)~iU';
    $replacement = '$1//';
    $buffer = preg_replace($pattern, $replacement, $buffer);
    JResponse::setBody($buffer);
}

これはおそらく、単に//に置き換えたくないものをキャッチしますが、それは始まりです!

2
David Fritsch

Yireoによって作成されたこのための素晴らしいプラグインがあります https://www.yireo.com/software/joomla-extensions/ssl-redirect

Joomla! SSLを使用するように構成できます。しかし、これはあなたのすべての安全なページが実際に安全に保たれているという意味ではありません。このプラグインは、実際に必要なものを強制します:HTTPSまたはHTTP。

何よりも、開発者は非常に敏感です...それは私に世界の違いをもたらします。

1
Joseph

Jsリンクでプロトコルを使用する必要はありません。 //を使用すると、正しいプロトコルが選択されます。

例えば。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

私は自分のコードでグローバル検索/置換を行い、それをそのままにして、今後は//src.jsを使用します。

1
user101289