Estou familiarizado com o uso de vários métodos para gerar uma URL segura com base no contexto, ou seja:
$this->getUrl('my-page', array('_forced_secure' => $this->getRequest()->isSecure()));
Isso funciona muito bem para criar links que direcionam para uma página segura enquanto você estiver no modo seguro (ou apenas direcionam para a página não segura se não estiver usando o modo seguro).
O problema que estou vendo é que o Magento trata apenas algumas páginas especiais como precisando ser seguro (conta de cliente, pagamento, etc). O que eu preferiria é que o Magento sempre use um link seguro se o usuário estiver atualmente no modo seguro ou use o link não seguro se o usuário estiver no modo não seguro.
Pelo que sei, minhas únicas opções reais são:
- Modifique todas as instâncias
$this->getUrl()
para serem semelhantes ao snippet acima. - Defina não seguro
base_url
para usar HTTPS, forçando a segurança de todas as páginas.
Existe um método melhor que não envolva a necessidade de alterar todas as chamadas $this->getUrl()
ou forçar todas as páginas para HTTPS, independentemente do contexto do usuário?
- editar -
Estou ciente de que posso modificar o /app/code/core/Mage/Core/Model/Url.php->setRouteParams()
método, mas espero que exista uma maneira mais limpa.
Mage_Core_Model_Store::getBaseUrl
para tornar nossa loja sempre segura quando incorporada em uma guia do Facebook. Porém, há outras coisas a considerar, como o armazenamento em cache de blocos, o que ocorrer primeiro (você precisará adicionar algo à chave do cache). Você também terá, como diz David, links não seguros para fazer login / checkout ou, finalmente, todos os clientes do seu site acabarão no modo seguro, se algum dia fizerem login ou fizerem o checkout./catalogsearch/
caminho como seguro deve incluir algo que corresponda/catalogsearch/*/*/
? Ou seja, seria necessária apenas uma regra para tornar tudocatalogsearch
seguro.Defina o seguinte no seu
app/etc/config.xml
arquivo:Isso funciona no Magento 1.9.1
Se o usuário estiver usando https, isso deve forçar todos os URLs a reescreverem para https.
fonte
Há uma opção discreta, mas importante no System | Configuração | Web ~, onde você deve dizer "usar URL seguro no front-end" - se você definir isso como sim, uma página carregada por https usará links https,
não há necessidade de escrever código ou fornecer configuração adicional na maioria dos casos
fonte