No back-end, ativei Usar URLs seguros no front-end . Mas os usuários ainda podem visitar meu site por meio de URLs não seguros, exceto nas páginas de checkout / conta.
Quero forçar URLs seguros em todas as páginas. O que faço agora é alterar o URL de base não seguro para "https: // ...."
Parece funcionar. Se os usuários usarem HTTP, eles serão redirecionados para https. Mas eu me pergunto se essa é a maneira correta de fazer isso. Algum efeito colateral?
Respostas:
A resposta padrão é: defina o URL de base não seguro como https: //, dependendo da sua configuração, isso já é suficiente para um redirecionamento se os usuários tentarem usar http: //
Talvez um redirecionamento no nível do servidor da web seja melhor, pois evita solicitações que passam pelo php primeiro.
E se você deseja uma solução perfeitamente segura, adicione seu site em https://hstspreload.appspot.com/ . Mas cuidado com isso, se você precisar alterar seu certificado, isso pode causar grandes problemas. Deixe seu Hoster se importar com esta parte.
fonte
você pode fazer isso com .htaccess no apache. Use estas linhas:
fonte
Para quem tropeçar nisso (como eu fiz)
Não use o htaccess. Em admin, vá
Stores -> General -> Web and change -> Use Secure URLs on Storefront -> Yes and Use Secure URLs in Admin -> Yes
Não há necessidade de editar nenhum arquivo.
fonte
Tentei as soluções anteriores e, embora parecessem funcionar, me bloquearam do painel de administração (não entendo completamente o motivo).
Para entrar no painel de administração novamente, tive que entrar no phpmyadmin e entrar na tabela core_config_data do banco de dados e alterar os dois caminhos : web / secure / use_in_adminhtml e web / unsecure / base_url para voltar ao painel de administração. E não se esqueça de limpar a pasta de cache se precisar fazer edições no banco de dados ...
Então, apliquei a seguinte solução .htaccess, que também permite que eu faça o login no admin
Espero que ajude alguém
fonte
A maioria das abordagens no .htaccess redirecionaria a maioria das páginas para casa quando acessadas via http.
Exemplo: http://www.mystore.com/productA.html => http://www.mystore.com/
em vez de https://www.mystore.com/productA.html
Eu o resolvi com a seguinte reescrita .htaccess (somente Apache, é claro):
Veja fonte .
fonte