Renombrar un sitio WordPress (cambiar la URL)

Alguna vez quisiste cambiar la URL de tu sitio WordPress pero te quedaste en el medio, con un sitio bloqueado? Aquí te explicamos como cambiarlo desde la base de datos y los archivos.

En BeezNest somos los desarrolladores principales del LMS Chamilo, pero también hemos metido mano bastante a Drupal y WordPress, y tenemos un mini-plugin de conexión entre WordPress y Chamilo.

Son 3 pasos en total. Algunos no siempre son necesarios pero queremos darte el caso más extremo para que te sirva hasta en los peores casos.

Cambiar la URL puede ser cambiar solo el nombre de dominio, pero nosotros vamos a cambiar:

  • el protocolo (http -> https)
  • el dominio (conference.chamilo.org -> con.chamilo.org)
  • la subcarpeta (inicialmente a la raíz y la movemos a /2017/)

También de paso vamos a pasar de un multi-site a un sitio único, pero eso no es *tan* relevante porque usualmente no se usan multi-sitios en una instalación sencilla de WordPress.

Lo importante es entender que hay 3 lugares donde potencialmente la URL de tu sitio esté cambiando, y los vamos a analizar uno por uno.

Base de datos

En tu base de datos, en la tabla wp_options, encontrarás que los dos primeros registros (usualmente) se llaman siteurl y home. Estos dos registros cambian con la URL de tu sitio, así que hay que cambiarlos. Si retomamos los cambios de arriba, estos dos parámetros deberían inicialmente ser:

mysql> select option_name, option_value from wp_options where option_id < 3;
+-------------+--------------------------------+
| option_name | option_value                   |
+-------------+--------------------------------+
| siteurl     | http://conference.chamilo.org/ |
| home        | http://conference.chamilo.org/ |
+-------------+--------------------------------+

Estos dos parámetros, los vamos a pasar a nuestra nueva URL: https://con.chamilo.org/2017/. Es importante siempre respetar la forma de la URL: si empieza con el protocolo y termina por un “/”, siempre debe ser así.

mysql> update wp_options set option_value = 'https://con.chamilo.org/2017/' where option_name = 'siteurl';
mysql> update wp_options set option_value = 'https://con.chamilo.org/2017/' where option_name = 'home';

Ojo que si es que estabas usando multi-site antes, también tendrás que modificar estos parámetros en wp_2_options, wp_3_options y otras si es que estas tablas existen.

.htaccess

En la raíz de tu sitio, existe un archivo .htaccess que contiene unas indicaciones de redirecciones para URLs amigables (si activaste esta opción). Estas tienen que ser actualizadas.

Tipicamente, será algo así:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

En nuestro caso, como pasamos a una sub-carpeta (/2017/), tenemos que modificarlo de esta manera:

RewriteEngine On
RewriteBase /2017/
RewriteRule ^index\.php$ - [L]

wp-config.php

En la raíz de tu sitio, también se encuentra el archivo wp-config.php que tiene toda la configuración de WordPress.

Es posible que no tengas que modificarlo, pero si tienes uno de los parámetros siguientes, tendrás que actualizarlo.

define('DOMAIN_CURRENT_SITE', 'conference.chamilo.org');
define('PATH_CURRENT_SITE', '/');

a algo así:

define('DOMAIN_CURRENT_SITE', 'con.chamilo.org');
define('PATH_CURRENT_SITE', '/2017/');

Como puedes observar, solo en la base de datos es que se pide el protócolo. Para esto se puede felicitar al equipo de WordPress quienes nos simplificó bastante la vida.

Eso es todo. Normalmente ahora tu sitio responde como otro protocolo, otro dominio (o subdominio) y en una subcarpeta!