Je connais l'utilisation de différentes méthodes pour générer une URL sécurisée en fonction du contexte, c'est-à-dire:
$this->getUrl('my-page', array('_forced_secure' => $this->getRequest()->isSecure()));
Cela fonctionne très bien pour créer des liens qui mèneront à une page sécurisée lorsque vous êtes en mode sécurisé (ou lieront simplement à la page non sécurisée si vous n'utilisez pas le mode sécurisé).
Le problème que je regarde est que Magento ne traite que quelques pages spéciales comme devant être sécurisées (compte client, paiement, etc.). Ce que je préférerais, c'est que Magento utilise toujours un lien sécurisé si l'utilisateur est actuellement en mode sécurisé , ou utilise le lien non sécurisé si l'utilisateur est en mode non sécurisé.
D'après ce que je peux dire, mes seules vraies options sont:
- Modifiez chaque instance de
$this->getUrl()
pour qu'elle soit similaire à l'extrait ci-dessus. - Définissez non sécurisé
base_url
pour utiliser HTTPS, forçant toutes les pages à sécuriser.
Existe-t-il une meilleure méthode qui n'implique pas de devoir changer chaque appel $this->getUrl()
ou forcer toutes les pages en HTTPS quel que soit le contexte de l'utilisateur?
-- Éditer --
Je suis conscient que je peux modifier la /app/code/core/Mage/Core/Model/Url.php->setRouteParams()
méthode, mais j'espère qu'il existe une méthode plus propre.
Mage_Core_Model_Store::getBaseUrl
pour rendre notre boutique toujours sécurisée lorsqu'elle est intégrée dans un onglet Facebook. Il y a d'autres choses à considérer cependant, comme le cache de bloc stockant le premier hit (vous devrez ajouter quelque chose à la clé de cache). Vous aurez également, comme le dit David, des liens non sécurisés pour vous connecter / passer à la caisse, ou finalement chaque client de votre site finira bien en mode sécurisé s'il se connecte ou frappe la caisse./catalogsearch/
chemin d'accès sécurisé devrait inclure tout ce qui correspond/catalogsearch/*/*/
? C'est-à-dire qu'il ne faudrait qu'une seule règle pour que toutcatalogsearch
soit sécurisé.Définissez les éléments suivants dans votre
app/etc/config.xml
fichier:Cela fonctionne dans Magento 1.9.1
Si l'utilisateur utilise https, cela devrait forcer toutes les URL à réécrire en https.
la source
Il existe une option discrète mais importante dans System | Configuration | Web ~ où vous devez dire "utiliser une URL sécurisée en frontend" - si vous définissez cette option sur oui, une page chargée par https utilisera des liens https,
pas besoin d'écrire du code ou de fournir une configuration supplémentaire dans la plupart des cas
la source