2016-07-10 3 views
0

PHP 웹 서버에 OpenCart 2.2를 설치했으며 PHP 버전 7.0.8을 실행하는 Apache 서버에서 실행했습니다.OpenCart 2.2 설치하기 100 % HTTPS

웹 사이트가 이미 SSL 인증서가 설치되어, 나는 통해 쇼핑 카탈로그를 방문 할 수 있습니다 :

https://example.com/printshop/index.php 

내가 SSL에서 실행되도록 전체 설치를 원하므로 다음과 같이 내가 관련 설정 파일을 편집 한 :

https://example.com/printshop/config.php

// HTTP 
define('HTTP_SERVER', 'https://example.com/printshop/'); 

// HTTPS 
define('HTTPS_SERVER', 'https://example.com/printshop/'); 

https://example.com/printshop/admin/config.php

// HTTP 
define('HTTP_SERVER', 'https://example.com/printshop/admin/'); 
define('HTTP_CATALOG', 'https://example.com/printshop/'); 

// HTTPS 
define('HTTPS_SERVER', 'https://example.com/printshop/admin/'); 
define('HTTPS_CATALOG', 'https://example.com/printshop/'); 

오전 데 문제는 양식 작업이 아닌 보안 URL을 가리키는 때문에 페이지가 100 % 안전하지 않습니다이다 - 예를 들면,

<form action="http://example.com/printshop/index.php?route=common/currency/currency" method="post" enctype="multipart/form-data" id="form-currency"> 

동일은 (그것의, 즉 행동이 아닌 https를 http로 가리키는)를 로그인 폼에 적용

https://example.com/printshop/admin/index.php?route=common/login

을 그리고 모든 페이지에서, (<div id="logo">에서 개최) 인쇄 가게 로고 반환 사용자를 비 HTTPS 페이지로 변경하십시오.

설정 파일의 URL을 이미 변경 한 것 외에도 설치 URL을 설정할 수있는 전역 설정이없는 곳이 있습니까?


솔루션을 @Vipul Jethva의 조언에

감사를 포함하도록 업데이트, 나는 이것에 대한 해결책을 얻었다.

편집 /system/library/url.php

변경 코드에서 :

public function link($route, $args = '', $secure = false) { 
    if ($this->ssl && $secure) { 
     $url = 'https://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['SCRIPT_NAME']), '/.\\') . '/index.php?route=' . $route; 
    } else { 
     $url = 'http://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['SCRIPT_NAME']), '/.\\') . '/index.php?route=' . $route; 
    } 
    ... 
} 

사람 :

public function link($route, $args = '', $secure = true) { 
    if ($this->ssl && $secure) { 
     $url = 'https://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['SCRIPT_NAME']), '/.\\') . '/index.php?route=' . $route; 
    } else { 
     $url = 'https://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['SCRIPT_NAME']), '/.\\') . '/index.php?route=' . $route; 
    } 
    ... 
} 

플러스의 루트에 config.php를 업데이트해야합니다 당신의 설치 및 admin/config.php도 https를 가리 키도록 설정하십시오.

답변

2

s,

컨트롤러 파일에는 다음 코드가 있습니다.

$this->url->link('common/home'); 

당신은

$this->url->link('common/home','',true); 

마지막 두 매개 변수는 SSL을 위해 사용하고, 같은 마지막 두 매개 변수를 전달해야합니다.

코드를 확인해야하는 경우. 그런 다음 시스템 -> 라이브러리 -> Url.php 파일을 얻습니다.

기본 $ 보안 매개 변수는 거짓입니다.

기본값 $ secure parameter = true 또는 컨트롤러 파일의 마지막 매개 변수를 만듭니다.

희망이 도움이 될 것입니다.

+0

감사합니다. @Vipul Jethva. 제안 된대로 url.php 파일을 편집했는데 일부 문제를 해결할 수 있지만 여전히 관리자 로그인 페이지로 이동하면 https://oracle101.co.uk/printshop/admin/index로 이동합니다. .php? route = common/login, 폼 동작은 여전히 ​​http가 아닌 https를 가리 킵니다. ** admin/controller/common/login.php ** 여기서 볼 수있는 것은'$ data [ 'action'] = $ this-> url-> link ('common/login', '', true);'벌써 진실로 설정되어 있지 않습니까? Thanks – 4532066

+1

시스템 -> liabrary-> url에서 https를 작성합니다. 조건에 https 만있는 경우. 그래서 당신은 또한 https를 else 조건으로 만들 것입니다. –

+0

알겠습니다. 감사합니다 .-) – 4532066