Conseguir el protocolo https en WordPress es algo que toda página web seria debería plantearse, pero no todo es color de rosas. Tras instalar el certificado SSL pueden aparecer cantidad de problemas relacionados con la seguridad y el SEO.
En esta guía hablaremos sobre:
- que hacer en WordPress tras instalar el SSL
- resolver problemas de seguridad como el mixed content
- arreglar el loop de redirecciones “La página ejemplo.com te ha redirigido demasiadas veces” o ERR_TOO_MANY_REDIRECTS
- eliminar redirección wp-content/cache/all/index.html
A continuación os dejo un índice para que podáis acceder directamente a cada parte de la guía.
Indice de contenidos
- 1 Configurar WordPress tras pasar de HTTP a HTTPS
- 1.1 Cambiar las URL de WordPress en wp-config.php
- 1.2 Cambiar las URL de WordPress en la base de datos
- 1.3 Forzar inicios de sesión seguros
- 1.4 Añadir redirección 301 del HTTP al HTTPS en .htaccess
- 1.5 Desactivar todos los plugins y reactivarlos
- 1.6 Instalar plugin para forzar el HTTPS en todos los recursos
- 2 Solución al Mixed Content
- 3 Solución al loop de redirecciones ERR_TOO_MANY_REDIRECTS
- 4 Solución a la redirección wp-content/cache/all/index.html
- 5 Ayuda profesional
Configurar WordPress tras pasar de HTTP a HTTPS
Tras instalar un certificado SSL en WordPress son necesarias una seria de modificaciones para optar a un correcto funcionamiento de la página web.
Cambiar las URL de WordPress en wp-config.php
Lo primero será ir a Ajustes>Generales para cambiar la dirección de WordPress y la del sitio. Para ello simplemente tenéis que añadir una s al final de http como en la imagen:
Esto ya forzará en algunos casos las redirecciones al dominio con https para evitar contenido duplicado.
Si esto no funciona podéis probar a editar el archivo wp-config.php añadiendo al final el siguiente trozo de código.
define('WP_HOME','http://example.com'); define('WP_SITEURL','http://example.com');
Recordad cambiar el dominio example por el vuestro.
Cambiar las URL de WordPress en la base de datos
En muchos casos no cambiar la URL de WordPress en la base de datos no supone problema alguno, pero en otros casos puede producir un redirect loop, o bucle de redirecciones, que bloquea totalmente WordPress. Personalmente siempre cambiaría esto en toda migración de http a https.
¡Advertencia! Haz una copia de seguridad a la base de datos antes de editarla.
Para editar las URL de WordPress en la base de datos tenéis que acceder a vuestra base de datos mediante vuestro administrador favorito e ir a la tabla wp-options(el wp- dependerá del prefijo que tengáis) para editar los campos “siteurl” y “home”.
Cuando hayáis editado esto podéis pasar al siguiente paso.
Forzar inicios de sesión seguros
Esto se consigue añadiendo al final de wp-config.php el siguiente código:
define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true);
Añadir redirección 301 del HTTP al HTTPS en .htaccess
Para evitar el contenido duplicado o páginas de error tendréis que crear una redirección del dominio con HTTP al que lleva HTTPS. Para esto simplemente vais al archivo .htaccess de la raíz y añadís las siguientes líneas.
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Recordad cambiar el dominio y añadir las líneas dentro de un módulo IfModule mod_rewrite.c o la redirección no funcionará.
Si se diese el caso de que esta redirección os da problemas sólo tenéis que volver al archivo y borrar estas líneas, así de fácil.
Desactivar todos los plugins y reactivarlos
Algunos plugins pueden dejar de funcionar correctamente al pasar de http a https, por eso es importarte desactivarlos y activarlos de nuevo.
Instalar plugin para forzar el HTTPS en todos los recursos
Buscando en el directorio de WordPress por keywords como “SSL” o “HTTPS” podéis encontrar gran variedad de plugins, pero os voy a recomendar los que suelen funcionar mejor.
Force HTTPS – La mejor opción, aunque no siempre consigue forzar el HTTPS en todos los recursos. La ventaja es que no causa problemas de redirecciones o errores en recursos.
SSL Insecure Content Fixer – Siempre y cuando no cause problemas es el mejor.
Si algunos de estos plugins no funcionan o no consiguen forzar el HTTPS en todos los recursos, más abajo tenéis los métodos para arreglar cualquier error común.
Solución al Mixed Content
Este error es muy común al cambiar de HTTP a HTTPS en WordPress. Se muestra porque los recursos se cargan desde HTTP ya que la web se creo con ese protocolo.
Desde mi experiencia veo dos soluciones posibles y aquí os las dejo.
Cambiar de plugin para forzar el HTTPS
Probad con otros plugins para ver si conseguís que funcione todo correctamente. Si veis que os resulta imposible pasad al siguiente paso.
Añadir protocolo HTTPS de forma manual
Para aplicar esta solución lo que tendréis que hacer es abrir la consola de Google Chrome en vuestra página y ver que archivos están dando problemas. Si lo hacéis de manera correcta veréis una lista como esta:
Según el tipo de archivo la solución cambia, pero aquí tenéis las más comunes:
- Imágenes: simplemente resubiéndolas al servidor desde el panel se arregla el Mixed content
- JS y CSS: usando CTRL+F buscamos “https” y añadimos lo cambiamos por HTTPS.
Si aun así tenéis mixed content probad a seguir buscando con CTRL+F por las plantillas. Lo más probable es que haya algún trozo de código con http y este ahora esté causando problemas.
Solución al loop de redirecciones ERR_TOO_MANY_REDIRECTS
Este error también es muy común cuando pasamos de http a https, pero es peor que el Mixed Content porque inutiliza la página web. La solución no es concreta, pero sí hay posibles soluciones y aquí las tenéis.
Plugin SSL/HTTPS incompatible con WordPress
Plugins como SSL Insecure Content Fixer o Really Simple SSL puede provocar esto. La solución está en desactivar todos los plugins relacionados con SSL/HTTPS y probar uno a uno cual es el causante del “La página ejemplo.com te ha redirigido demasiadas veces”.
Personalmente el plugin Force HTTPS no me ha dado problemas. Yo tuve este error y si no fuese por este plugin mi SSL sería inútil 😀
Redirección errónea en el .htaccess
Revisad el .htaccess en busca de algún tipo de error o redirección errónea. Es raro, pero hay personas que sin querer crean verdaderos bucles de redirecciones con este archivo.
Solución a la redirección wp-content/cache/all/index.html
Este error está ocasionado por el cache del plugin WP Fastest Cache y, al igual que los anteriores, es un dolor de cabeza al migrar de HTTP a HTTPS. Desde el punto de vista del usuario el problema no es importante, simplemente cambia la URL y listo. El problema real está en como afecta al SEO de WordPress ya que está apuntando el dominio http a un archivo que no es el correcto.
De nuevo os mostraré las posibles soluciones.
Editar el .htaccess
Según el propio soporte del plugin una de las posibles soluciones es añadir el siguiente código a la redirección HTTP a HTTPS del archivo .htaccess
RewriteCond %{REQUEST_URI} !wp-content\/cache\/(all|wpfc-mobile-cache)
Este código debe ser añadido después de la condición y antes de la regla. El código final quedaría como esto:
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} !wp-content\/cache\/(all|wpfc-mobile-cache) RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Esta solución no funciona en muchos casos, no os preocupéis si os pasa lo mismo. Simplemente eliminad la línea y dejad el .htaccess como antes.
Cambiar de plugin
Así es, la solución absoluta al problema es cambiar de plugin aunque nos duela. Personalmente os puedo recomendar W3 Total Cache que es el que yo uso y no da problemas, pero podéis probar el que queráis.
Ayuda profesional
Si estás desesperado por arreglar este problema y estás dispuesto a que expertos te lo solucionen ponte en contacto conmigo https://angelosada.com/contacto para que te haga un presupuesto.