Índice
Hace tiempo, cuando migramos de blogger a WordPress escribimos un artículo sobre cómo realizar la migración sin perder el posicionamiento web. Una parte fundamental para mantener ese posicionamiento es conseguir que los enlaces sigan funcionando. Para ello existe un plugin que he estado usando hasta ahora. Sin embargo he decicido dejar de usarlo y sustituir todos los enlaces antiguos por los nuevos usando expresiones regulares. En éste artículo veremos cómo aplicar este cambio.
Descargar la base de datos
Es más sencillo descargar una copia de la base de datos para realizar las sustituciones necesarias, ya que podremos aplicar las expresiones regulares en cualquier editor de texto. Para ello, si usamos PhpMyadmin hay que entrar al panel de administración, seleccionar la base de datos a exportar, en este caso la de WordPress, pulsar el botón Export y dejar todo tal y como aparece en la siguiente imagen:
Generar la expresión regular necesaria
Ahora que tenemos la base de datos descargada, la descomprimimos y nos paramos a pensar qué expresión regular nos hace falta. En este caso, buscamos reemplazar URLs del tipo dominio.com/2011/12/nombre-artículo por otras del tipo dominio.com/nombre-articulo. Es necesario usar antes el plugin para redireccionar los artículos de blogger a WordPress para que se creen los enlaces del tipo dominio.com/nombre-articulo. Con esto en mente, construimos la siguiente expresión regular:
elbauldelprogramador\.com\/\d+\/\d+\/((?:\w+-?)+)\.html
Explicación de la expresión regular
Lo que tienen las expresiones regulares es que cuando pasa un tiempo, y aunque la hayas creado tú, es probable que no tengas ni idea de por qué la hiciste y cómo se te ocurrió. Hace tiempo en la sección Viñetas Geek de Domingo apareció una imagen que refleja esta sensación:
Así que pasemos a explicarla:
- /: Primera barra tras el dominio.
- \d+: Uno o más dígitos, para la primera parte de la url, como 2011.
- /: Segunda barra tras el año.
- \d+: Uno o más dígitos, en este caso el més del artículo.
- /: La barra de antes del nombre del artículo.
- ((?:\w+-?)+): Esta es la parte más complicada, necesitamos capturar el contenido que coincida con esta expresión regular, ya que utilizaremos dicho contenido para reescribir la nueva URL. Para capturar grupos se usan (), y para capturarlos pero no guardarlos se usa (?:). De modo que en esta expresión aparecen dos expresiones de captura. La razón es la explicada en este artículo. Si usaramos un solo grupo, cuando usemos los caracteres capturados solo se recordará el último, en lugar de la cadena entera, es decir, si la URL es titulo-post sólo se recordará -post, de modo que creamos dos grupos y descartamos el segundo (El que tiene ?:) para que se haga el uso correcto del operando +. Sigamos explicando el interior del grupo.
- \w+: Cualquer dígito [A-Za-z0-9_] una o más veces
- -?: Seguido o no de un guión.
Esto debería bastar, con cualquier editor, en este caso con Geany, podemos buscar y reemplazar las cadenas que coincidan con esta expresión:
Lo cual sustituirá la URL antigua por lo que coincidión en la expresión ((?:\w+-?)+), cuyo contenido se puede referenciar con \1, donde 1 es el número del grupo, si hubiera varios, se referenciarían con \1, \2 etc. Con esto, ya podemos dejar de usar el plugin.
¿Has visto algún error?: Por favor, ayúdame a corregirlo contactando conmigo o comentando abajo.