4

Web サイトに OpenCarton をインストールしましたが、安全な領域に SSL を正しく設定しようとするまでは問題ありませんでした。

現在、サイト全体で https を強制的に有効にしてサイトを機能させていますが、「正しい」方法で設定すると、安全なページを機能させることができません。

私はphpの専門家ではないので、あなたがほとんどばかとして扱ってくれることを願っています! やりながら学んでいます。

OpenCart フォーラムで解決策を調査しましたが、成功しませんでした。

問題は、チェックアウトなどのアクセス時にベースの href が https ではなく http のままであるため、「安全でないコンテンツ」が発生しているようです。

私のWebホストが変数サーバー['HTTPS']をサポートしていないことが原因である可能性が高いことをすでに発見しました。OpenCartに問い合わせることを提案していますが、1週間近く経っても有用な回答がありません!

/controller/common/header.php の次の行に問題があります。

    if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
        $this->data['base'] = $this->config->get('config_ssl');
    } else {
        $this->data['base'] = $this->config->get('config_url');
    }

そして、ファイルのさらに下に:

if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
        $server = HTTPS_IMAGE;
    } else {
        $server = HTTP_IMAGE;
    }   

したがって、これらの行を置き換える別の方法が必要です。

同様の問題のように見えるものについて、ここの別の投稿でいくつかの代替案を見つけましたが、それらを実装する方法がわかりません。

誰かが忍耐力を持っている場合は、段階的な編集が役立ちます。

必要に応じてさらに情報を提供できますが、あまりにも早く行きすぎたくありませんでした.

ありがとう

ロビン

4

1 に答える 1

1
if (isset($this->request->server('SERVER_PORT')) && (($this->request->server('SERVER_PORT') == '443'))) {
    $this->data['base'] = $this->config->get('config_ssl');
} else {
    $this->data['base'] = $this->config->get('config_url');
}

他のコード スニペットについても同じことを行います。基本的に、サーバーが実行されているポートを確認します。HTTP はポート 80 で提供され、HTTPS はポート 443 で提供されます。

于 2012-12-08T21:09:25.003 に答える