| Suscribir mediante RSS

Cómo cambiar URL sin usar phpMyAdmin

12 febrero 2011 Diseño web

Sin phpMyAdminSuele ser habitual en usuarios poco experimentados creer que desde el DashBoard o Panel de Control de WordPress se puede modificar la URL del blog sin mayores consecuencias.

Bien sea porque quieren cambiar de dominio o porque quieren el blog en otra carpeta cometen el error de modificar en el menú Settings - General, los valores de 'WordPress address URL' (Dirección URL de WordPress) y 'Site address URL' (Dirección URL del sitio), pensando que de esta manera está todo resuelto. Nada más lejos de la realidad, ahora si tienen realmente un problema.

Las opciones de 'WordPress address (URL)' y 'Site address (URL)' se deben modificar cuando se quiere instalar WordPress en un directorio pero se desea acceder como si estuviera en el directorio raíz desde la URL principal.

En 'WordPress address (URL)' pondríamos, por ejemplo, "http://tudominio.com/carpeta" y en 'Site address (URL)' "http://tudominio.com".

En realidad hay que hacer algunos pasos más para que esto funcione correctamente, en el Codex está documentado la forma de llevarlo a la práctica. La idea es acceder al blog mediante "http://tudominio.com" aunque los archivos de WordPress estén ubicados en un directorio. Según el ejemplo anterior, carpeta.

Por supuesto, no se pueden modificar estos valores arbitrariamente. Si se hace nos será imposible acceder al blog para rehacer los cambios. Esa información se guarda en la base de datos de WordPress y si se modifica no corresponderá con la URL real del blog dando errores en todos los enlaces, inclusive el de login.

Si esto ocurre no nos queda más remedio que entrar en alguna utilidad de manejo de bases de datos como phpMyAdmin para resolver el problema. Tampoco vale tener plugins que permitan manipular los datos porque no tendremos acceso desde dentro de WordPress.

En todos los servidores existe phpMyAdmin, no es complicado de utilizar pero si no sabemos o no tenemos claro como funciona, lo siguiente podría solucionar la situación a más de uno. Debes tener acceso por FTP a tu servidor para hacerlo.

Crea un archivo con el nombre que desees, por ejemplo, restaurar.php

El contenido de este archivo es:

<?php 
require '../../../wp-load.php';
global $wpdb;

$cambiar_url = "UPDATE wp_options SET option_value = replace
(option_value, 'antiguodominio.com', 'nuevodominio.com') 
WHERE option_name = 'home' OR option_name = 'siteurl'";

$resultado = $wpdb->query( $cambiar_url );
if (!$resultado) {
 echo 'Me temo que no se ha cambiado la URL revisa bien los nombres';
 } else {
 echo 'URL cambiada'; 
 }
?>

Un detalle a tener en cuenta, el código en $cambiar_url = "UPDATE ... etc, etc..." se debe escribir todo seguido en la misma línea, esto es muy importante. Aquí se han puesto dos saltos de línea para que se saliera completo en pantalla. También debes sustituir los nombres de dominio del ejemplo por los tuyos, teniendo mucho cuidado de no equivocarse porque este código no comprueba si la operación se realizó con éxito aunque si da un mensaje si la URL a cambiar no es la que figura en la base de datos.

Una vez lo hayas subido por FTP a la carpeta de tu theme. Teclea en el navegador todo el trayecto completo hacia ese archivo. Es decir, "http://tudominio.com/wp-content/themes/tu-theme/restaurar.php"

Si todo va bien ya tienes tu blog funcionando. Lo que hace el código es sustituir en la tabla 'wp_options' de la base de datos en los campos 'home' y 'siteurl' el dominio equivocado por el nuevo. Aquí es donde guarda WordPress esa información.

Esto debe funcionar bien con la última versión, a dia de hoy la 3.1, aunque no creo que varíe mucho en las siguientes versiones. En caso de ser así no será dificil modificar el código para adaptarlo a posibles cambios en la base de datos.

Posibles problemas:

1 - Si las URLs de 'WordPress address URL' y 'Site address URL' son diferentes, no funcionará. En este caso se pueden crear dos archivos uno para cada URL, es decir, la sentencia SQL de la variable $cambiar_url es ligeramente diferente para cada caso.

Para el caso de haber modificado 'WordPress address URL':

$cambiar_url = "UPDATE wp_options SET option_value = replace
(option_value, 'antiguodominio.com', 'nuevodominio.com') 
WHERE option_name = 'siteurl'";

Para 'Site address URL':

$cambiar_url = "UPDATE wp_options SET option_value = replace
(option_value, 'antiguodominio.com', 'nuevodominio.com') 
WHERE option_name = 'home'";

2 - WordPress actualiza el archivo .htaccess cada vez que se realiza un cambio de URL. Dependiendo de la URL que se haya introducido puede que haya cambiado el archivo .htaccess, no está de más comprobarlo, aunque se sabrá si al intentar acceder a un enlace da error. Si se posee una copia de este archivo anterior al cambio de URL se debe sustituir. Si no es así habrá que modificarlo manualmente.

En realidad no tienes que preocuparte de tocar manualmente el archivo .htaccess porque WordPress lo creará de nuevo si entras en el menú Ajustes - Permalink. Ejemplos de .htaccess pueden ser:

Para instalaciones en el directorio raíz:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Para instalaciones en otro directorio (modificar la palabra directorio por el que se tenga):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /directorio/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /directorio/index.php [L]
</IfModule>

# END WordPress
Tags: ,

Otros artículos de Diseño web

WordPress.com contra WordPress.org
Ordenando el Footer
Google ayuda a los sitios web a combatir el malware
Colección de iconos
WordPress en video

26 Respuestas a “Cómo cambiar URL sin usar phpMyAdmin”

  1. Invitado dice:

    Excelente recurso, mil gracias por esta aportación!.


  2. Invitado dice:

    Justo lo que he hecho...el problema que tengo es:
    1- Instalo wordpress en viejo.eu/wordpress
    2- Me piden el cambio, y me meto la jarpada, cambio WordPress address y site address al nuevo dominio (nuevo.eu)
    3-Me da un error chungo de que no encuentra nada, voy y copio la carpeta viejo.eu/wordpress en nuevo.eu
    4-Empiezo a ponerme nerviosa
    5-Leo tu artículo
    6-Ejecuto el recuperar.php desde viejo.eu/wp_content/....
    sustituyendo 'antiguodominio.com' por 'nuevo.eu' y 'nuevodominio.com' por 'viejo.eu/wordpress'
    7-No tengo .httaccess en ninguna carpeta de viejo.eu/wordpress (ni en ningún lado)
    8-Puedo ver las páginas, pero han perdido todos los estilos y no va ningun plugin
    9-No puedo acceder al dashboard.
    10- Suicidio?

    Me podrías echar una mano??

    Muchas gracias!


  3. Invitado dice:

    Me acabao de dar cuenta de que en el recuperar.php tengo mal la sentencia
    $cambiar_url = "UPDATE wp_options SET option_value = replace (option_value, 'nuevo', 'viejo.eu/wordpress') WHERE option_name = 'home' OR option_name = 'siteurl'";

    Vaya, que me he dejado el .eu en el 2º parámetro....

    Cuek!


  4. Invitado dice:

    Arreglado


  5. admin dice:

    Me alegro que se haya arreglado. La mayoría de problemas son debidos a despistes como ese. Hay que hacer las cosas con calma y fijarse detenidamente.

    Un saludo


  6. Invitado dice:

    yo tengo mi sitio alojado en mipagina.com/online pero quiero que la url visivle sea online.mipagina.com , como deberia hacer el cambio en el .htaccess, espero me puedas ayudar 🙁


  7. admin dice:

    Lo que quieres hacer es un subdominio, WordPress no interviene para nada. Tu servidor debe permitirte crear subdominios. Cuando creas un subdominio en el servidor se crea una carpeta para alojar y gestionar los archivos correspondientes a ese subdominio. Normalmente te pide la carpeta que quieres asociar al subdominio.

    Ejemplo, si creas un subdominio llamado online, puedes crear una carpeta llamada online, de manera que acceder mediante mipagina.com/online y online.mipagina.com es exactamente lo mismo. En tu caso te falta el subdominio.

    Un saludo


  8. Invitado dice:

    Me has salvado, estuve todo el dia buscando una solución a mi problema, pues le compre una parte de hosting a un amigo y solo tengo acceso al ftp y el me creo la base de datos.

    Intente formas de ingresar que no fueran por cPanel y nunca encontre algo que sirviera.

    Gracias a los primeros parrafos todo solucionado.

    Muchas Gracias!!


  9. Invitado dice:

    hola,

    instale wordpress, y me aparecio este link "http://michaelshabani.com/wp" empese a crear la pagina en este dominio luego cuando termine entre a opciones generales/ cambie el url del site y toda mi web q avance en worpress desaparecio, please necesito ayuda estoy desesperado.


  10. admin dice:

    Si te parece más fácil intenta lo que digo en este post, como cambiar la url en wordpress

    Un saludo


  11. Invitado dice:

    hola
    cambie por php el los campos 'siteurl' y el campo 'home' y ya me funciona el sitio y puedo acceder al dashboard.. pero creo alguna pagina o post y al querer verlo en mi sitio, me sale el error que me salia al haber cambiado el url.. de igual manera no puedo entrar a ninguna de las opciones del sitio.. solo me vale el home nada mas..


  12. admin dice:

    Elimina archivos temporales de navegación o historial del navegador.

    Revisa dentro del DashBoard que realmente estén bien las opciones de Dirección URL de WordPress y Dirección URL del sitio.

    También modifica o elimina el permalink y crealo de nuevo.

    Un saludo


  13. Invitado dice:

    Muchas gracias, este post me ha sido de gran ayuda. Después de mirar en otros muchos foros sin encontrar la solución, al final lo he podido arreglar de esta manera!


  14. Invitado dice:

    Gracias amigo! qué bueno que existen salvadores como tú! Muy útil la información... muy bien explicados los pasos a seguir y los posibles problemas...era la solución que necesitaba! GRACIAS!!!!!!!


  15. Invitado dice:

    Cambié la direccion wordpress y la direccion del site, en la bd, exactamente lo que tu no recomiendas, todos los enlaces me funcionan, pero las fotos que hay en las páginas no se ven, aunque si están en la librería multimedia. Crees que si lanzo el archivo de restauración estas volverá a aparecer?

    Gracias por el tutorial, la próxima web que cambie de directorio a raiz lo haré como sugieres.


  16. admin dice:

    Si sólo has hecho esa modificación lo puedes intentar. Aquí tienes otra solución más fácil. Lo que indico es sólo para restaurar los valores de home y siteurl cuando se ha modificado en el DashBoard o Escritorio. El resto de enlaces de la base de datos no se modifican.

    También puedes consultar con tu hosting a ver si hacen backups o copias de seguridad de la base de datos para que puedas restaurar a una fecha anterior a la modificación.

    Un saludo


  17. Invitado dice:

    Gracias por la aportación. Realmente este método te saca de un aprieto si no tienes acceso por lo que sea a la base de datos. A mi me ha servido muy bien!!


  18. Invitado dice:

    Me gustaría hacerte una breve consulta: Recorte las Url de los posts de mi pagina (fecha) para que fueran mas amigables para SEO pero me genero problemas y ademas me siguen apareciendo; leí que para poder eliminarlas se debe hacer desde el PhpMyAdmin, ya se ingresar allí, pero mis modestos conocimientos no dan como para saber desde donde lo debo hacer así lo tenga que hacer una por una, solo quiero saber donde encuentro las url y asi poderlas eliminar yo mismo.


  19. admin dice:

    Tan negativo para SEO es tener un inadecuado permalink como hacer cambios posteriormente cuando el blog lleva tiempo funcionando. Incluso diría que lo segundo es peor puesto que Google y demás buscadores ya tienen indexado tu sitio con la antigua URL.

    Desde phpMyAdmin poco puedes hacer puesto que las URLs las crea WordPress dinámicamente. Sólo puedes cambiar en la base de datos los enlaces internos a propios artículos, el resto no podrás.

    Si habías publicado muchos artículos, es preferible que dejes el permalink como estaba y busques otras formas de optimizar el SEO mediante algún plugin, títulos en las imágenes y demás.

    Un saludo


  20. Invitado dice:

    Muchas gracias, me ha sido de gran ayuda 🙂


  21. admin dice:

    Les recuerdo que existe otra opción quizás más fácil para usuarios que no quieran usar phpMyAdmin y que tampoco quieran estar con tanto código, que siempre es más fácil cometer errores. Lo explico en este artículo. Cómo cambiar URL en WordPress sin phpMyAdmin.


  22. Invitado dice:

    muchas gracias! estaba volviendome loca para cambiar mi wordpress de carpeta. solucionado!!!


  23. Invitado dice:

    ¡Muchas gracias! Una excelente solución para este problema, funciona excelente para la versión 3.6.

    ¡Gracias!


  24. admin dice:

    Es bueno saberlo pero realmente se puede hacer lo mismo de forma más sencilla, tal como digo en este artículo Cómo cambiar la URL en WordPress.

    Un saludo


  25. Invitado dice:

    Hola. Estuve utilizando la plataforma de wordpress, pero sin saber cambie la dirección del directorio y ahora ya no puedo entrar al panel de wordpress. He visto formas para solucionar el problema, pero en todas las sugerencias me dicen que cambie en la carpeta de mi tema el archivo functions.php o que borre el archivo y despues lo vuelva a sustituir. El problema es que no me deja modificar el archivo. Probe eliminar toda la carpeta del tema y volver a instalar el tema, pero tampoco me deja eliminar la carpeta. Ya probe el restaurar.php, pero tampoco me deja instalarlo en la carpeta de mi tema. Para todo me sale ERROR CRITICO DE TRANSFERENCIA DE FICHERO. Podrias ayudarme


  26. admin dice:

    Lo único que te queda es entrar directamente en phpMyAdmin (prestando mucho cuidado y atención) y cambiar los valores manualmente. Se encuentran en dos sitios de la tabla wp_options, en los campos siteurl y home.

    Ese error suele darse en servidores Windows, ponte en contacto con el servicio técnico puesto que es un problema que ellos pueden solucionar. Te aconsejo cambies cuanto antes a un servidor Linux, el 90% de los servidores del mundo trabajan con este sistema operativo, y encima son más baratos.

    Un saludo