Protocollo SSL : Logo negozio e {$base_dir} su PS v1.5.x ed aggiungere logo SSL

Nel caso si acquisti un certificato SSL e lo si attivi tramite il back-office di prestashop forzando l’utilizzo dell’SSL sull’intero negozio :

Prestashop v1.5.x force ssl

Prestashop v1.5.x force ssl

quindi andando su Preference -> General e mettendo la spunta su Force the SSL on all the pages si verificheranno dei problemi di sicurezza in quanto alcuni link potranno ancora essere in formato http.

In particolar modo se avete modificato dei file di template o utilizzando in qualche modo la variabile {$base_dir} vi verrà restituito il link in versione http e non https, per ovviare a questo problema andrà sostituito {$base_dir} con {$base_dir_ssl} in tutti i file di template ove fosse necessario.

Il problema permane per il logo che continuerà ad essere visualizzato in modalità non sicura, per risolvere questo problema va modificato un file del codice classes/Link.php nella seguente maniera (riga 410 circa) :

public function getMediaLink($filepath)
{
– return Tools::getShopProtocol().Tools::getMediaServer($filepath).$filepath;
+ return $this->protocol_content.Tools::getMediaServer($filepath).$filepath;
}

Possono esserci delle leggere differenze sulla riga a seconda della release di PrestaShop che state utilizzando, nel caso della versione 1.5.6.2 ad esempio la funzione getMediaLink corretta sarà (riga 408 circa) :

public function getMediaLink($filepath)
{
return $this->protocol_content.Tools::getMediaServer($filepath).$filepath;
return Tools::getShopProtocol().Tools::getMediaServer($filepath).$filepath;
}

Trovate la soluzione originale postata su GitHub e la header-logo-breaks-ssl discussione sul forum inglese di PS.


Infine segnalo il seguente link sul sito mypresta.eu con un utile tutorial per aggiungere un loghetto SSL sul footer del proprio online shop : Secured SSL logo for prestashop