¿Hay alguna forma de detectar HTTP o HTTPS y luego forzar el uso de HTTPS con JavaScript?
Tengo algunos códigos para detectar HTTP o HTTPS pero no puedo forzarlo a usar https:
.
Estoy usando la propiedad window.location.protocol para establecer lo que sea el sitio para https:
luego actualizar la página y, con suerte, volver a cargar una nueva URL https cargada en el navegador.
if (window.location.protocol != "https:") {
window.location.protocol = "https:";
window.location.reload();
}
javascript
https
window.location
usuario registrado
fuente
fuente
Respuestas:
Prueba esto
location.href = blah
agrega esta redirección al historial del navegador. Si el usuario presiona el botón Atrás, será redirigido a la misma página. Es mejor usarlolocation.replace
ya que no agrega esta redirección al historial del navegador.fuente
window
y nodocument
?!==
?location.replace(url)
Sería mucho mejor quelocation.href = url
para este caso. No desea esta redirección en el historial del navegador o que el usuario presione el botón Atrás para ser redirigido nuevamente.Establecer location.protocol navega a una nueva URL . No es necesario analizar / cortar nada.
Firefox 49 tiene un error donde
https
funciona perohttps:
no funciona. Se dice que se arreglará en Firefox 54 .fuente
if window.location.href.match('http:') window.location.href = window.location.href.replace('http', 'https')
funciona en los últimos FF y Chrome.location.protocol = "https";
parece funcionar enlocation.replace
lugar.No es una buena idea porque solo redirige temporalmente al usuario a https y el navegador no guarda esta redirección.
Describe la tarea para el servidor web (apache, nginx, etc.) http 301, http 302
fuente
¿Qué tal esto?
Sin embargo, lo ideal sería hacerlo en el lado del servidor.
fuente
fuente
No es una forma de Javascript para responder esto, pero si usa CloudFlare, puede escribir reglas de página que redirijan al usuario mucho más rápido a HTTPS y es gratis. Se ve así en las reglas de la página de CloudFlare:
fuente
Tu puedes hacer:
fuente
Forma funcional
fuente
Debe verificar esto: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests
Agregue esta metaetiqueta a su index.html dentro de la cabeza
Espero que haya ayudado.
fuente
Me gustan las respuestas a esta pregunta. Pero para ser creativo, me gustaría compartir una forma más:
fuente
fuente
fuente
Hola, utilicé esta solución funciona perfectamente. No es necesario verificar, solo use https.
fuente
Acabo de probar todas las variaciones de script probadas por Pui Cdm , incluí las respuestas anteriores y muchas otras usando php, htaccess, configuración del servidor y Javascript, los resultados son que el script
proporcionado por vivek-srivastava funciona mejor y puede agregar más seguridad en el script java.
fuente