Migrar desde HTTP a HTTPS en WordPress

WordPress guarda la URL del sitio en la base de datos desde la configuración (Ajustes → Generales); podrías cambiar esta configuración e introducir la versión HTTPS de tu dominio y ya está, como dicen muchos tutoriales, pero hay un gran problema: quedarán muchísimas referencias a la versión HTTP por toda la base de datos. Por ejemplo, la URL de imágenes insertadas en los posts.

Por eso no es suficiente con cambiar la configuración.

Search & replace DB

El problema se podría solucionar con diferentes enfoques, para mí uno de los más directos es hacer un “buscar y reemplazar” en toda la base de datos. Buscamos las referencias a la versión en HTTP (http://miweb.com) y la reemplazamos por la versión HTTPS (https://miweb.com).

Y como WordPress tiene la costumbre de guardar datos serializados en la base de datos, y también lo hacen muchos plugins, has de hacer un search&replace que mantenga la validez de esos datos serializados. Existen muchas herramientas que hacen este trabajo muy bien, entre ellas Database search and replace for WordPress es una de las más populares. Sigue las instrucciones de uso que aparecen en su página, son bastante sencillas:

También puedes utilizar alguno de los muchos plugins disponibles, como Velvet Blues Update URLs o Better Search Replace. Y si utilizas wp-cli, puedes utilizar el siguiente comando:

wp search-replace ‘http://ejemplo.com’ ‘https://ejemplo.com’

Redirigir todo el tráfico a HTTPS

Para terminar la migración, tenemos que redirigir todo el tráfico que nos llegue en la versión HTTP a la nueva URL. Con la estas reglas en .htaccess, colocadas antes de las reglas de WordPress, haremos una redirección 301, con lo que redirigimos a los usuarios a la vez que pasamos todas las señales SEO a la nueva ubicación:

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,L]

En realidad, una vez que la configuración de WordPress tiene la URL en la versión HTTPS, el propio WordPress puede hacer la redirección, pero esto supone cargar WordPress, redirigir al usuario y volver a cargar WordPress. Haciendo la redirección desde .htaccess, o desde la configuración del servidor, no se llega a ejecutar ni una sola línea de PHP y es mucho más eficiente.

Y ya está. Ya tienes tu WordPress servido completamente a través de HTTPS. Y si necesitas volver a HTTP (¿por qué harías algo así?), haces de nuevo el Search & Replace a la inversa y listo.

Basado en : https://cybmeta.com/wordpress-http-a-https