Я знаком с использованием различных методов для создания безопасного 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()
метод, хотя я надеюсь, что есть более чистый способ.