Мені знайоме використання різних методів для створення захищеної URL-адреси на основі контексту, тобто:
$this->getUrl('my-page', array('_forced_secure' => $this->getRequest()->isSecure()));
Це чудово підходить для створення посилань, які спрямовуватимуть на захищену сторінку, поки ви перебуваєте в захищеному режимі (або просто посилаєтесь на незахищену сторінку, якщо не використовуєте захищений режим).
Проблема, на яку я дивлюся, полягає в тому, що Magento розглядає лише кілька спеціальних сторінок як такі, що потребують захисту (обліковий запис клієнта, замовлення тощо). Я б хотів би, щоб Magento завжди використовував захищене посилання, якщо користувач перебуває в захищеному режимі , або використовувати незахищене посилання, якщо користувач перебуває в незахищеному режимі.
З того, що я можу сказати, мої єдині реальні варіанти:
- Змініть кожен екземпляр,
$this->getUrl()
щоб він був подібний до фрагменту, наведеного вище. - Встановіть захист
base_url
HTTPS, що не захищено , змушуючи захищати всі сторінки.
Чи є кращий метод, який не передбачає необхідності змінювати кожен виклик $this->getUrl()
або примушувати всі сторінки до HTTPS незалежно від контексту користувача?
- редагувати -
Я знаю, що можу змінити /app/code/core/Mage/Core/Model/Url.php->setRouteParams()
метод, хоча сподіваюся, що існує більш чистий спосіб.