Conosco vari metodi per generare un URL sicuro basato sul contesto, ad esempio:
$this->getUrl('my-page', array('_forced_secure' => $this->getRequest()->isSecure()));
Funziona perfettamente per la creazione di collegamenti che indirizzeranno a una pagina protetta mentre si è in modalità protetta (o si collegheranno semplicemente alla pagina non sicura se non si utilizza la modalità protetta).
Il problema che sto esaminando è che Magento considera solo alcune pagine speciali come sicure (account cliente, checkout, ecc.). Quello che preferirei sarebbe che Magento utilizzasse sempre un collegamento sicuro se l'utente è attualmente in modalità protetta , oppure utilizzare il collegamento non sicuro se l'utente è in modalità non sicura.
Da quello che posso dire, le mie uniche opzioni reali sono:
- Modifica ogni istanza di
$this->getUrl()
essere simile allo snippet sopra. - Impostare non sicuro
base_url
per utilizzare HTTPS, forzando tutte le pagine a proteggere.
Esiste un metodo migliore che non comporta la necessità di modificare ogni chiamata $this->getUrl()
o forzare tutte le pagine in HTTPS indipendentemente dal contesto dell'utente?
-- modificare --
Sono consapevole di poter modificare il /app/code/core/Mage/Core/Model/Url.php->setRouteParams()
metodo, anche se spero che ci sia un modo più pulito.