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);
}
Estableciendo location.protocol navega a una nueva URL . No hay necesidad de analizar / cortar nada.
if (location.protocol !== "https:") location.protocol = "https:";
Firefox 49 tiene un bug en el que funciona https:
pero https:
no. Dicho para ser arreglado en Firefox 54 .
<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:'')