Cómo evitar mixed content warning en Apache.
Si servimos una web en HTTPS mediante Apache y esta enlaza a recursos como imágenes, css o JavaScript mediante links que usen HTTP, los navegadores no cargarán estos recursos.
Para evitar este problema, podemos configurar el siguiente código en el .htaccess:
<ifModule mod_headers.c>
Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>
Este encabezado indica al navegador web que "actualice" las solicitudes HTTP a HTTPS sin tener que tocar código en el sitio web, pero solo funciona en navegadores modernos.
Tocando código
Si podemos tocar código, deberíamos cambiar los enlaces de la siguiente manera:
1) Modificando todos los enlaces para cargar archivos a través de HTTPS:
<img src="https://ejemplo.com/imagen.png">
2) Alternativamente, se puede prescindir de http y https y dejar que el servidor elija el esquema:
<img src="//ejemplo.com/imagen.png">
3) Por último, podemos usar rutas relativas:
<img src="/imagen.png">
NOTA: "//" hace que el navegador utilice el mismo esquema de la URL actual, por lo que utilizará https:// en las páginas HTTPS y http:// en las páginas HTTP.
0 comentarios:
Publicar un comentario