Contenido

Cambiar enlaces al cambiar de dominio

18 abr

+ 31

Hoy he recibido un mail de Miguel de EntreGeek (antes BlogR.info), y me comentaba que había cambiado de dominio y que quería volver a cargar la base de datos para disfrutar de los posts y comentarios ya almacenados en el antiguo dominio. Hacer esto es realmente sencillo, ya que mediante herramientas como phpMyAdmin esta tarea es realmente sencilla.

El problema radica en que los enlaces almacenados en la base de datos apunten al servidor antiguo, lo que supone un problema para la consolidación del nuevo servidor ya que los usuarios son redirigidos al  antiguo servidor. Para ello podemos hacer uso de una función de SQL que nos permite reemplazar valores almacenados dentro de los campos de nuestra base de datos.

update wp_posts set post_content = replace(post_content,'http://www.antiguo.com','http://www.nuevo.com');

En este ejemplo, vemos que de la tabla wp_posts cambiaremos el contenido de post_content, que es el campo de la tabla que contiene el contenido de los posts, con el mismo contenido al que previamente le habremos cambiado todas las apariciones de http://www.antiguo.com  por la ruta http://www.nuevo.com. Si queremos cambiar los enlaces a posts encontrados en los comentarios, tendremos que hacer exactamente lo mismo pero cambiando los datos referentes a la tabla y columna afecta con los relacionados con los comentarios.

Esta propiedad de SQL es muy potente, por lo que es importante usarla con cuidado y hacer que la busqueda ser correcta ya que podemos ocasionar un destrozo en algo muy, pero que muy delicado, nuestra base de datos. Por este motivo, antes de hacer ninguna modificación  HAZ UNA COPIA DE SEGURIDAD y asegurate de que el patrón que buscas no sea muy general ya que podría cambiar valores que no deberían ser cambiados.

Actualizo

Al leer los comentarios, he visto que se ha optado por usar htaccess, y realmente es una buena opcíon ya que el  resultado es el deseado, aunque no es práctico a la larga ya que nos obligaría a arrastrar dichos cambios a lo largo de todos nuestros servidores,… que por desgracia nunca es solo uno…. en mi caso voy camino al 3ro.

Otra opción que se baraja es la de reemplazar el fichero SQL directamente desde un editor de texto y subirlo ya modificado, en esencia es la misma tarea y si tienes linux, con los comandos correctos la forma más fácil. El problema que yo he tenido cuando he intentado hacer esto, es la gran cantidad de líneas de los SQL lo que hace casi inmanejable el fichero en cualquier editor, yo mismo con 2300 posts podría colgar el equipo o como mínimo me daría tiempo a pasarme algún juego de la DS antes de que pudiera reaccionar. Si tienes poco posts o un buen equipo es una opción tan buena como la anterior.

Por otro lado quizas he sido demasiado escueto en la explicación del proceso anterior. Para que el uso del replace funcione en nuestra BD tendremos que lanzar dicha petición SQL desde la etiqueta SQL del phpMyAdmin. Repito y no me cansaré, que más vale perder 10 min en hacer una copia de seguridad que llorar despues de haber perdido todo.

Gracias a magarto por sus explicaciones y a goa por la idea de edición del fichero.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.