Existe alguma maneira de detectar HTTP ou HTTPS e forçar o uso de HTTPS com JavaScript?
Eu tenho alguns códigos para detectar o HTTP ou HTTPS, mas não posso forçá-lo a usar https:
.
Estou usando a propriedade window.location.protocol para definir o que quer que seja o site e, em https:
seguida, atualize a página para recarregar uma nova URL https'ed carregada no navegador.
if (window.location.protocol != "https:") {
window.location.protocol = "https:";
window.location.reload();
}
javascript
https
window.location
Usuário Registrado
fonte
fonte
Respostas:
Tente isto
location.href = blah
adiciona esse redirecionamento ao histórico do navegador. Se o usuário pressionar o botão Voltar, ele será redirecionado novamente para a mesma página. É melhor usarlocation.replace
, pois não adiciona esse redirecionamento ao histórico do navegador.fonte
window
e nãodocument
?!==
?location.replace(url)
seria muito melhor do quelocation.href = url
para este caso. Você não deseja esse redirecionamento no histórico do navegador ou o usuário pressiona o botão Voltar apenas para ser redirecionado novamente.A configuração location.protocol navega para um novo URL . Não há necessidade de analisar / cortar nada.
O Firefox 49 tem um bug onde
https
funciona, mashttps:
não funciona . Dito para ser corrigido no Firefox 54 .fonte
if window.location.href.match('http:') window.location.href = window.location.href.replace('http', 'https')
funciona no mais recente FF e Chrome.location.protocol = "https";
parece funcionar embora no firefox 28location.replace
vez disso.Não é uma boa ideia, porque você redireciona temporariamente o usuário para https e o navegador não salva esse redirecionamento.
Você descreve a tarefa para o servidor Web (apache, nginx etc) http 301, http 302
fonte
Que tal agora?
Idealmente, você faria no lado do servidor.
fonte
fonte
Não é uma maneira Javascript de responder a isso, mas se você usa o CloudFlare, pode escrever regras de página que redirecionam o usuário muito mais rapidamente para HTTPS e é gratuito. É assim nas regras da página do CloudFlare:
fonte
Você pode fazer:
fonte
Maneira funcional
fonte
Você deve verificar isso: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests
Adicione essa metatag ao seu index.html dentro da cabeça
Espero que tenha ajudado.
fonte
Eu gosto das respostas para esta pergunta. Mas, para ser criativo, gostaria de compartilhar mais uma maneira:
fonte
fonte
Oi eu usei esta solução funciona perfeitamente.Não precisa verificar, basta usar https.
fonte
Acabei de testar todas as variações de script do Pui Cdm , incluindo as respostas acima e muitas outras usando php, htaccess, configuração do servidor e Javascript; os resultados são que o script
fornecido por vivek-srivastava funciona melhor e você pode adicionar mais segurança no script java.
fonte