Cómo migrar una instalación HTTPS de WordPress a localhost
He migrado un sitio desde un servidor en vivo a localhost usando el plugin WP Migrate DB. He realizado este proceso varias veces antes y todo ha funcionado bien. Sin embargo, esta vez he migrado un sitio desde una conexión https y no puedo acceder al sitio en mi localhost. Me aparece el siguiente error:
Este sitio no puede proporcionar una conexión segura
localhost envió una respuesta no válida.
ERR_SSL_PROTOCOL_ERROR
Supongo que en el backend de WordPress necesito cambiar algo, ya sea en la base de datos o en el Tablero > Ajustes > pestaña General.
Actualmente no puedo acceder al sitio, así que creo que tendré que hacerlo a través de la base de datos.
Cualquier ayuda o asistencia sería genial. No estoy seguro por dónde empezar.
Paul.

Esto ocurre porque los valores de site_url
y homeurl
de tu instalación original están configurados como HTTPS en la base de datos, por lo que no podrás acceder a tu sitio web en localhost a menos que:
- Cambies estos valores a no-SSL
- Instales un certificado SSL en localhost
Solo explicaré el primer caso ya que la instalación de un certificado está fuera del alcance de esta comunidad.
Para hacer esto, tienes 2 opciones.
Editar directamente el archivo SQL descargado
Abre la exportación de MySQL que acabas de descargar de tu servidor. Busca wp_options
y encontrarás una línea en tu base de datos como esta:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
Las 2 líneas debajo de esta son siteurl
y homeurl
. Cambia ambos valores a http://localhost/
. ¡Presta atención a las comillas y comas! Entonces, las primeras 3 líneas se verán así:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
(1, 'siteurl', 'http://localhost/', 'yes'),
(2, 'home', 'http://localhost', 'yes'),
Luego sube tu archivo SQL. Eso es todo.
Actualizar los valores mediante PHPMyAdmin
Si tienes PHPMyAdmin instalado en tu localhost, o tienes suficiente conocimiento para actualizar las tablas directamente mediante la línea de comandos, procede con este método.
Inicia sesión en tu base de datos mediante PHPMyAdmin. Desde el menú de navegación izquierdo, elige la base de datos correcta. Ahora, selecciona la tabla wp_options
desde la sección derecha.
De nuevo, los dos primeros valores serán siteurl
y homeurl
, que puedes actualizar simplemente a http://localhost/
sin preocuparte por cometer un error al editar el archivo SQL original.

Gracias Jack, hice lo último de tus dos descripciones y está todo listo. Aprecio tu ayuda.

Una búsqueda y reemplazo con el script SearchReplaceDB2 de interconnetit para cambiar de https a http también sería una buena opción. Esto también se puede lograr con wp-cli.

Además del caso descrito aquí, deberías renombrar wp-content/plugins/really-simple-ssl para desactivarlo.

En la tabla wp_options, encontrarás dos filas que contienen la URL del sitio. Debes cambiar esos dos valores.
Sin embargo, es posible que tengas que ajustar los enlaces de tus medios y otras páginas internas. Por eso dejo que el excelente plugin WP Clone (https://wordpress.org/plugins/wp-clone-by-wp-academy/) haga todo el trabajo por mí. Simplemente instalas el plugin en el sistema fuente, haces una copia de seguridad, luego instalas el plugin en el sistema de destino y restauras.
Un plugin fantástico que elimina todo el trabajo de mover (clonar) un sitio. A veces tengo que hacer la restauración dos veces (la primera falla por un motivo misterioso), pero el reintento funciona perfectamente. Todos los datos, usuarios, contenido, etc. se migran de forma impecable.

En mi caso, fue diferente a las otras respuestas. Mi base de datos estaba configurada correctamente a http://localhost
pero tenía un plugin instalado para gestionar SSL (Really Simple SSL).
Así que renombré la carpeta /wp-content/plugins/really-simple-ssl
a algo diferente y funcionó.
Y para acceder a /wp-admin
sin SSL, necesitas cambiar tu archivo /wp-config.php
y establecer FORCE_SSL_ADMIN
a false
.

Me he encontrado con este problema. Lo que hice fue:
- Eliminar el plugin wp-security
- Eliminar la definición FORCE_SSL de wp-config.php
- Limpiar la caché del navegador
- Cambiar las URLs site_url y home en la tabla wp-options
- Actualizar el .htaccess con el archivo .htaccess por defecto de WordPress
Nada funcionó.
Finalmente lo que hice fue:
Eliminar el archivo .htaccess permanentemente funcionó correctamente para mí.
Espero que esto ayude a alguien a solucionar este problema.

¡¡¡Muchas gracias!!!! Tu respuesta merece estar en primer lugar. ¡¡¡Me salvaste el trasero, hermano!!!! ¡¡¡Gracias!!!!!!

@armah - en realidad, reglas específicas dentro del archivo causaron el problema. Al comentarlas se resolvió. ¡Gracias por tu ayuda!

Puedes hacerlo rápidamente con estas 2 constantes que ofrece WordPress.
Debes agregarlas al inicio del archivo wp-config.php
, justo después de las etiquetas de apertura <?php
.
define ('WP_HOME', 'http://localhost/nombre-de-carpeta-wordpress' );
define ('WP_SITEURL', 'http://localhost/nombre-de-carpeta-wordpress' );
