SSL in opencart 2.2 big fix
Geplaatst: 08 juli 2017
Deze tekst is geschreven door meneer victorj op het opencart forum. Ik ben persoonlijk 3 dagen bezig geweest om ssl te fixen in mijn opencart installatie. Er zit een error in opencart 2.2 waardoor de normale installatie van ssl niet werkt. Alle handleidingen geven aan dat het met 2 stappen moet werken terwijl dit niet het geval is. Lees hier de stappen die je moet ondernemen om je shop van ssl te voorzien in opencart 2.2
Let op dit geld alleen voor opencart 2.2.0.0 en is niet getest op andere versies.
Opencart 2.2.0.0 is niet even zomaar onder ssl te zetten, althans niet zoals we dat gewend waren.
Voor iedereen die daar mee zit te tobben, hier de benodigde stappen.
in de admin shop configuratie tabje server ssl op aan zetten
neem een redirect op in de .htaccess die de site onder https forceerd, er zijn server afhankelijk een aantal methodes
Uiteraand vervang je domeinnaam door je eigen domeinnaam, eventueel aangevuld met www.
Deze werkt goed in sites die cpanel hebben
direct na:
invoegen
werkt die niet dan kun je deze proberen op dezelfde plaats
config bestand in de root
in het bestand config.php in de map admin ulrs aanpassen:
bestand system/library/url.php
zoek de volgende code
verander de hppt naar https zodat het er zo uitziet
In de admin krijg je dan nog een foutmelding bij het veranderen van een order status.
Om de order edit goed te krijgen, open het bestand admin/controller/sale/order.php aangepast
regel 850 zoek
veranderd in
Let op dit geld alleen voor opencart 2.2.0.0 en is niet getest op andere versies.
Opencart 2.2.0.0 is niet even zomaar onder ssl te zetten, althans niet zoals we dat gewend waren.
Voor iedereen die daar mee zit te tobben, hier de benodigde stappen.
in de admin shop configuratie tabje server ssl op aan zetten
neem een redirect op in de .htaccess die de site onder https forceerd, er zijn server afhankelijk een aantal methodes
Uiteraand vervang je domeinnaam door je eigen domeinnaam, eventueel aangevuld met www.
Deze werkt goed in sites die cpanel hebben
direct na:
Code: Selecteer alles
Options +FollowSymlinks
Code: Selecteer alles
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://domeinnaam.nl/$1 [R=301,L]
Code: Selecteer alles
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} store
RewriteRule ^(.*)$ https://domeinnaam.nl/store/$1 [R,L]
Code: Selecteer alles
// HTTP
define('HTTP_SERVER', 'https://domeinnaam.nl/');
// HTTPS
define('HTTPS_SERVER', 'https://domeinnaam.nl/');
Code: Selecteer alles
// HTTP
define('HTTP_SERVER', 'https://domeinnaam.nl/admin/');
define('HTTP_CATALOG', 'https://domeinnaam.nl/');
// HTTPS
define('HTTPS_SERVER', 'https://domeinnaam.nl/admin/');
define('HTTPS_CATALOG', 'https://domeinnaam.nl/');
zoek de volgende code
Code: Selecteer alles
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;
}
Code: Selecteer alles
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 = 'https://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['SCRIPT_NAME']), '/.\\') . '/index.php?route=' . $route;
}
Om de order edit goed te krijgen, open het bestand admin/controller/sale/order.php aangepast
regel 850 zoek
Code: Selecteer alles
$data['store_url'] = $this->request->server['HTTPS'] ? str_replace("http", "https", $order_info['store_url']) : $order_info['store_url'];
Code: Selecteer alles
$data['store_url'] = $this->request->server['HTTPS'] ? preg_replace("/^http:\/\//", "https://", $order_info['store_url']) : $order_info['store_url'];