S
SnakeNet
Xi
Programador
Forzar la url mediante javascript de http a https
Todos sabemos que por seguridad la mayoría de los sitios están implementando el https y se esta quedado detrás el http pero cuando se trata de alterar varias entradas con iframe o urls http como es el caso de ammje que aún no lo hayan forzado para que use https pese a tener configurado para que carguen mediante https como suele ser en los iframes la solución es remplazar mediante javascript.
Aclarar que se puede remplazar el código para que sea más especifico o darle otro uso dado que no todos los sitios están aún con la disponibilidad del https que ya están tardando en adaptarse.
Y pues dado que el código que os voy a facilitar es genérico va a remplazar todos los iframes y url que estén utilizando http y los va a pasar a https pero eso puede ocasionar que algunos sitios aún no soporte https y no carguen en ese caso el código deberás adaptarlo a tu necesidad, ya bien sea para x urls y demás.
Es necesario tener jQuery y aplicar el código en el head que os dejo justo debajo.
Insertar CODE, HTML o PHP:
if (document.location.protocol === 'https:') {
$('iframe').each(function() {
var src = $(this).attr('src');
if (src.indexOf('http:') > -1) {
src = src.replace('http:', 'https:');
$(this).attr('src', src);
}
});
$('a').each(function() {
var href = $(this).attr('href');
if (href.indexOf('http:') > -1) {
href = href.replace('http:', 'https:');
$(this).attr('href', href);
}
});
}
Ahí estoy haciendo que remplace los enlaces y el iframe que usen http pasen a https y a continuación os detallo los códigos por separado por si solo necesitáis alterar una o la otra.
En este código solo remplazara el http a https de los enlaces.
Insertar CODE, HTML o PHP:
if (document.location.protocol === 'https:') {
$('a').each(function() {
var href = $(this).attr('href');
if (href.indexOf('http:') > -1) {
href = href.replace('http:', 'https:');
$(this).attr('href', href);
}
});
}
En este código solo remplazara el http a https en los iframes.
Insertar CODE, HTML o PHP:
if (document.location.protocol === 'https:') {
$('iframe').each(function() {
var src = $(this).attr('src');
if (src.indexOf('http:') > -1) {
src = src.replace('http:', 'https:');
$(this).attr('src', src);
}
});
}
Por ultimo aclarar que "document.location.protocol === 'https: " esta detectando si usa https en caso de que no, no efectuara los cambios lo que es útil para sitios como forobeta que te permite acceder mediante las dos rutas hasta el momento, así no afecta al resto.
Aquí os dejo la demostración cargando https y sin https.
Accediendo mediante https con contenido http.
Accediendo mediante http con contenido http, sin aplicar ningún cambio.
Última edición: