Cómo mover una instalación de WordPress de un subdominio al dominio o directorio raíz

Pruebo en una versión de hosting gratuito de Hostinger.es, con un panel (CPanel) muy ‘currado’ y completamente gratis. Si te gusta, puedes registrar el hosting ‘de pago’

Cómo mover una instalación de WordPress de un subdominio al dominio o directorio raiz
Valencia, 22/03/2014, G.B.
Hay veces que necesitamos probar una instalación de WordPress sin comprometer a la ‘versión oficial’, la versión online que tenemos en marcha en nuestro directorio raíz. Para ello, una de las opciones es crear un subdominio en nuestro hosting e instalar otra instancia de WordPress en dicho subdirectorio, como por ejemplo blog, web, o lo que se nos ocurra…

De esta forma, podemos probar todo lo que queramos, como por ejemplo un nuevo tema o plantilla de WordPress, sin ‘tocar’ nuestra instalación principal, ubicada en el directorio raiz de nuestro hosting.

Algunos hostings nos permiten cambiar la carpeta destino de nuestro dominio (1and1 es uno de ellos), pero otros no. ¿Qué ocurre si hemos instalado nuestro nuevo WordPress en un subdominio de nuestro hosting y nos ha gustado y queremos convertirlo en la ‘versión oficial’ de nuestra web, es decir, el directorio raiz de nuestro sitio? Pues en el Codex de WordPress tenemos la respuesta; en concreto, es este enlace: Moving WordPress.

Antes de meternos en faena, comentaros que no está de más hacer una prueba en algún hosting gratuito, como por ejemplo el de Hostinger.es. Además, si queremos (y si nos gusta) podemos convertir la versión gratuita en nuestro hosting de pago, nuestro sitio web.; eso a decisión de cada cual.

Ahora veamos los pasos a seguir para registrar una cuenta gratuita de Hostinger.es en la que crear un subdominio para instalar en el mismo un WordPress y luego ‘moverlo’ al directorio raiz del sitio. En mi caso, he creado la cuenta gratuita
http://testingwordpress.esy.es (.hol.es ya estaba registrada…).

Seguidamente, a través del completo CPanel de Hostinger, he creado el subdomino blog.testingwordpress.esy.es. He ido a la administración de bases de datos y creado una nueva base de datos para poder utilizarla en la nueva instalación de WordPress en el subdominio citado (http://blog.testingwordpress.esy.es). he copiado los datos de FTP (File transfer Protocol) y a través de un gestor gratuito FTP (como por ejemplo Filezilla), he subido los archivos de instalación de WordPress (https://es.wordpress.org/). Por desgracia,  pero debo decir que en el caso de Hostinger, eso me ha fallado, por lo que he eliminado los archivos de WordPress subidos al subdirectorio y he realizado la instalación automática de WordPress en el subdirectorio: http.//testingwordpress.esy.es/blog o http://blog.testingwordpress.esy.es). De esta forma, sí ha funcionado. Eso dependerá de cada hosting. Os dejo captura de pantalla del de Hostinger.es:

instalador automatico hostinger
Y este es el blog recién instalado en el subdominio ‘blog’:
blog testing wordpresshello world

Ahora vamos a ‘cambiar’ el subdirectorio por el directorio. Para ello, nos vamos a los Ajustes de WordPress y en General, cambiamos la URL de nuestro blog instalado en el subdominio por la URL del directorio raiz, en mi caso, lo cambio por www.testingordpress,esy.es:
WordPress Ajustes Generales (General Settings)

Acto seguido, copiamos los archivos index.php y el .htaccess del subdominio y los subimos al directorio raiz. Acto seguido, cambiamnos una línea de código .php en el index.php ya subido al directorio raiz: /NOMBRESUBDOMINIO/wp-blog-header.php’. Recordemos que el archivo .htaccess (archivo de configuración del servidor Apache) muchas veces es ‘invisible’, por lo que tendremos que elegir la opción ‘mostrar archivos ocultos’ en nuestro gestor de FTP, como por ejemplo Filezilla. Bien, veamos la pequeña modificación añadida a nuestro archivo index.php (última línea de código:
require( dirname( __FILE__ ) . '/blog/wp-blog-header.php' ))

<?php
/**
* Front to the WordPress application. This file doesn’t do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/

/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define(‘WP_USE_THEMES’, true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . ‘/blog/wp-blog-header.php’ );

Y por último, para que al abrir el subdirectorio se redirija automáticamente con una redirección 301 al dominio raiz, editamos el .htaccess del subdominio y luego lo copiamos y subimos también al directorio raíz:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
Rewritecond %{http_host} ^blog.testingwordpress.esy.es [NC]
Rewriterule ^(.*)$ http://www.testingwordpress.esy.es/$1 [L,R=301]
</IfModule>
# END WordPress

Espero que os sirva. Hasta pronto!