Pokud jste se rozhodli používat HTTPS na ZenCartu tak je k tomu kromě SSL certifikátu potřeba provést potřebné úpravy v konfiguračních souborech. Zde je stručný návod jak provést základní nastavení pro změnu HTTP na HTTPS.
UPOZORNĚNÍ: je třeba rozumět všem prováděným krokům. Doporučujeme problematiku přechodu na HTTPS důkladně prostudovat. Chybné nebo neúplné nastavení může způsobit nefunkčnost stránek nebo problémy s indexací v internetových vyhledávačích.
UPOZORNĚNÍ: u všech upravovaných souborů si nejprve vytvořte zálohu
Zprovoznění SSL certifikátu
Návod na instalaci certifikátu najdete v naší nápovědě ve článku Nastavení HTTPS šifrování.
Ověření funkčnosti SSL certifikátu
Funkčnost certifikátu si můžete ověřit tak, že v adresním řádku přidáte „s“ za http. Například u domény http://www.zserver.cz změníte adresu na https://www.zserver.cz. Prohlížeč by neměl zobrazit žádné chybové hlášení. Dále existují různé online nástroje na otestování správného nastaveni SSL certifikátu. Jeden z kvalitních nástrojů je SSL Server Test od Qualsys.
Změna konfiguračních souborů
Změnu je třeba provést ve dvou konfiguračních souborech. HTTPS lze pro zákaznické rozhraní zapnout pouze pro přihlášení zákazníka a pokladnu a nebo globálně pro celé stránky.
Zákaznické rozhraní – soubor includes/configure.php
1 2 3 4 5 |
define('HTTP_SERVER', 'http://www.vasedomena.cz'); define('HTTPS_SERVER', 'https://www.vasedomena.cz'); // Use secure webserver for checkout procedure? define('ENABLE_SSL', 'true'); |
1 2 3 4 5 |
define('HTTP_SERVER', 'https://www.vasedomena.cz'); define('HTTPS_SERVER', 'https://www.vasedomena.cz'); // Use secure webserver for checkout procedure? define('ENABLE_SSL', 'false'); |
Administrační rozhraní – soubor ADRESAR_ADMINISTRACE/includes/configure.php
1 2 3 4 5 6 7 8 |
define('HTTP_SERVER', 'https://www.vasedomena.cz'); define('HTTPS_SERVER', 'https://www.vasedomena.cz'); define('HTTP_CATALOG_SERVER', 'https://www.vasedomena.cz'); define('HTTPS_CATALOG_SERVER', 'https://www.vasedomena.cz'); // Use secure webserver for catalog module and/or admin areas? define('ENABLE_SSL_CATALOG', 'true'); define('ENABLE_SSL_ADMIN', 'true'); |
Změna .htaccess souboru
Pro automatické přesměrování z HTTP na HTTPS verzi stránek je třeba v souboru .htaccess v kořenovém adresáři nastavit:
1 2 3 4 5 6 7 8 9 |
#Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^domena.cz$ [NC] RewriteRule ^(.*)$ https://www.domena.cz/$1 [R=301,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] |
Toto nastavení přesměrování je dočasné (Redirect 302 – Moved Temporary) a je tak vhodné pro otestování funkčnosti. Jakmile si ověříte, že vše funguje korektně tak můžete přidat příznak pro trvalé přesměrování (Redirect 301 – Moved Permanently) takto:
1 2 3 4 5 6 7 8 9 |
#Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^domena.cz$ [NC] RewriteRule ^(.*)$ https://www.domena.cz/$1 [R=301,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
Trvalé přesměrování můžete nastavit i bez editace .htaccess souboru přímo v administraci webhostingu dle návodu na přesměrování HTTP na HTTPS.
Změna interních odkazů
Pokud se někde na stránkách odkazujete na své stránky (například v textu EZ Stránky odkazujete na kategorii nebo produkt) absolutním odkazem tedy takovým, který obsahuje i http (například http://www.vasedomena.cz/shippinginfo.html) tak je třeba tento odkaz přepsat na https. Pokud používáte relativní odkazy (například /shippinginfo.html) tak tato změna není třeba.
Přegenerování a kontrola xml feedů pro vyhledávače zboží
Pokud používáte předinstalovaný XML generátor tak stačí pouze přegenerovat xml feed. Pokud používáte jiný modul tak konzultujte tuto část s dodavatelem modulu.
Kontrola vložených scriptů
Typicky se jedná o vložené scripty Facebooku či Google. Pokud budou obsahovat HTTP tak může prohlížeč zobrazit informaci že je část stránky nezabezpečená.
Změna odkazů směrujících na vaše stránky
Změňte veškeré odkazy na vaše stránky, ke kterým máte přístup.
Průběžná kontrola statistik přístupů
Po úspěšném převodu pečlivě sledujte statistiky přístupů kvůli případným problémům. Může nastat dočasný mírný pokles návštěvnosti, ale vše by se mělo brzy vrátit na původní hodnoty.
Ve výchozím nastavení se produkty v kategoriích ZenCartu řadí podle názvu. Toto řazení lze ovlivnit několika způsoby:
Nastavení řazení na kartě jednotlivých produktů v ZenCart
u každého produktu v kategorii je třeba nastavit pořadí
Změna nastavení výchozího řazení v ZenCart
v administraci ZenCartu v sekci:
Konfigurace => Product Listing => Display Product Listing Default Sort Order
lze nastavit hodnotu ve formátu číslo+písmeno. Číslo odpovídá hodnotě uvedené u některé ze zobrazených informací o produktu. Písmeno a nebo d pak znamená řazení vzestupně (ascending) nebo sestupně (descending). Pokud je tedy například v nastavení:
Konfigurace => Product Listing => Display Product Model
nastavena hodnota 2, pak nastavením volby 2d docílíme sestupného řazení dle kódu produktu.
Úprava na řazení dle libovolného parametru v ZenCart
jako příklad je uvedeno řazení dle data přidání produktu. V souboru includes/index_filters/default_filter.php najdeme následující část:
98 99 100 101 102 103 104 |
} else { // sort by products_sort_order when PRODUCT_LISTING_DEFAULT_SORT_ORDER ia left blank // for reverse, descending order use: // $listing_sql .= " order by p.products_sort_order desc, pd.products_name"; $listing_sql .= " order by p.products_sort_order, pd.products_name"; break; } |
a přidáme podmínku, která způsobí řazení produktů podle data přidání v případě, že v konfiguraci:
Konfigurace => Product Listing => Display Product Listing Default Sort Order
nastavíme číslo 55 (lze samozřejmě nastavit libovolné jiné číslo). Přidáme řádky 102 – 104 a 106:
98 99 100 101 102 103 104 105 106 107 108 |
} else { // sort by products_sort_order when PRODUCT_LISTING_DEFAULT_SORT_ORDER ia left blank // for reverse, descending order use: // $listing_sql .= " order by p.products_sort_order desc, pd.products_name"; if (PRODUCT_LISTING_DEFAULT_SORT_ORDER == 55) { $listing_sql .= " order by p.products_date_added desc"; } else { $listing_sql .= " order by p.products_sort_order, pd.products_name"; } break; } |
Nyní je třeba změnit nastavení v:
Konfigurace => Product Listing => Display Product Listing Default Sort Order
na číslo 55 a produkty se budou řadit podle data přidání sestupně. Pokud bychom chtěli vzestupné řazení tak vynecháme „desc“ na konci řádku 103.