javascript https window.location

Detecta HTTP o HTTPS y luego fuerza HTTPS en JavaScript



window.location (9)

¿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 configurar lo que sea el sitio en https: luego actualice la página para volver a cargar una nueva URL https''ed cargada en el navegador.

if (window.location.protocol != "https:") { window.location.protocol = "https:"; window.location.reload(); }


¿Qué tal esto?

if (window.location.protocol !== ''https:'') { window.location = ''https://'' + window.location.hostname + window.location.pathname + window.location.hash; }

Sin embargo, lo ideal sería hacerlo en el lado del servidor.


Acabo de tener todas las variaciones de script probadas por Pui Cdm , incluí las respuestas anteriores y muchas otras que usan php, htaccess, configuración del servidor y Javascript, los resultados son que el script

<script type="text/javascript"> function showProtocall() { if (window.location.protocol != "https") { window.location = "https://" + window.location.href.substring(window.location.protocol.length, window.location.href.length); window.location.reload(); } } showProtocall(); </script>

proporcionado por funciona mejor y puede agregar más seguridad en el script java.


Hola, utilicé esta solución funciona perfectamente. No es necesario verificar, solo use https.

<script language="javascript" type="text/javascript"> document.location="https:" + window.location.href.substring(window.location.protocol.length, window.location.href.length); </script>

saluda brAiNee


No es una buena idea porque solo redirecciona 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


No es una forma de Javascript para responder a 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. Parece esto en las Reglas de la página de CloudFlare:


Prueba esto

if (location.protocol != ''https:'') { location.href = ''https:'' + window.location.href.substring(window.location.protocol.length); }



<script type="text/javascript"> function showProtocall() { if (window.location.protocol != "https") { window.location = "https://" + window.location.href.substring(window.location.protocol.length, window.location.href.length); window.location.reload(); } } showProtocall(); </script>


if (location.protocol == ''http:'') location.href = location.href.replace(/^http:/, ''https:'')