Znam różne metody generowania bezpiecznego adresu URL na podstawie kontekstu, tj .:
$this->getUrl('my-page', array('_forced_secure' => $this->getRequest()->isSecure()));
Działa to świetnie do budowania linków prowadzących do bezpiecznej strony, gdy jesteś w trybie bezpiecznym (lub po prostu prowadzi do niezabezpieczonej strony, jeśli nie używasz trybu bezpiecznego).
Problem, na który patrzę, polega na tym, że Magento traktuje tylko kilka specjalnych stron jako wymagające bezpieczeństwa (konto klienta, kasa itp.). Wolałbym, aby Magento zawsze korzystał z bezpiecznego łącza, jeśli użytkownik jest obecnie w trybie bezpiecznym , lub z niezabezpieczonego łącza, jeśli użytkownik jest w trybie niezabezpieczonym.
Z tego, co mogę powiedzieć, moje jedyne prawdziwe opcje to:
- Zmodyfikuj każde wystąpienie,
$this->getUrl()
aby było podobne do powyższego fragmentu. - Ustaw niezabezpieczone
base_url
na używanie HTTPS, zmuszając wszystkie strony do zabezpieczenia.
Czy istnieje lepsza metoda, która nie wymaga zmiany każdego wywołania $this->getUrl()
lub zmuszania wszystkich stron do HTTPS niezależnie od kontekstu użytkownika?
-- edytować --
Wiem, że mogę zmodyfikować /app/code/core/Mage/Core/Model/Url.php->setRouteParams()
metodę, ale mam nadzieję, że istnieje lepszy sposób.