Gravatar de Armonth

Redireccionar viejos enlaces en WordPress

Me encuentro en El Diablo en los Detalles un post sobre el asunto de que al escribir una entrada no sean filtrados algunos caracteres en el SLUG (Nombre para URI) por ejemplo si en el título escribimos “apañáis” en el SLUG — y por tanto en el enlace final — sera “apanais” pero algunos caracteres como “¿” y “¡” no lo arreglan (por eso siempre que un título los incluye pongo el slug a mano)…

En la entrada comentan sobre un sitio llamado Tempus Fugit (no, no el de Shora sobre ciencia: otro con el mismo nombre en inglés) sobre Redirect Old Slugs un plugin para redireccionar tu vieja estructura de enlaces a una nueva.

PD: A más de un blog le haría falta eso o aprender htaccess, que es muy habitual (y no doy nombres por no ofender) ver que han cambiado la estructura de enlaces a una nueva y todos los viejos enlaces dan Error404 y tienes que tirar de buscador para encontrar el nuevo enlace…

11 Comentarios (feed)

  1. Gravatar de MarioQuartz MarioQuartz nos comenta:

    Yo querria tener urls bonitas pero lo que genera el wordpress no va, asi que estoy buscando otra manera de hacerlo.

    Tu que regla usas en el .htacces?

    Miércoles, 6 de Septiembre/2006 @ 20:54

  2. Gravatar de Armonth Armonth nos comenta:

    Haz una cosa: pon el fichero htaccess “con todos los permisos” (rwxrwxrwx) y usa la opción “permalinks” del menú…

    La parte relativa al htaccess con las urls en WordPress es muy simple:

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

    # END WordPress

    Vamos, la “por defecto” y WordPress ya se encarga de generar la estructura a tu gusto…

    Si no te funciona es seguramente porque el servidor no te haya dado permisos para usar .htaccess

    Miércoles, 6 de Septiembre/2006 @ 21:03

  3. Gravatar de MarioQuartz MarioQuartz nos comenta:

    probado: no va.
    asi ha quedado:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    RewriteRule ^thumb-(.+)/(.+)$ /phpt/phpThumb.php?src=../imagenes/$2&w=$1

    Miércoles, 6 de Septiembre/2006 @ 21:13

  4. Gravatar de MarioQuartz MarioQuartz nos comenta:

    y ahora la anterior regla que si funcionaba no va. :’(

    Miércoles, 6 de Septiembre/2006 @ 21:21

  5. Gravatar de Armonth Armonth nos comenta:

    El orden es importante… prueba poniendo la última línea antes de los RewriteCond e incluso del RewriteBase…

    Miércoles, 6 de Septiembre/2006 @ 21:44

  6. Gravatar de Gosku Gosku nos comenta:

    Mi caso:

    Quiero actualizar la estructura de permalinks.
    Ahora mismo es:
    /%year%/%month%/%day%/%postname%
    y quiero actualizarla a:
    /archivo/%category%/%postname%.html

    Esto provocará que un enlace que apunte al viejo permalink devuelva un 404.
    ¿Este plugin puede solucionar esto que comento?¿Cómo lo hago?
    Uso Wordpres 2.0.1, por si cambia de una versión a otra.
    Gracias por vuestra ayuda de antemano.

    Miércoles, 18 de Octubre/2006 @ 14:51

  7. Gravatar de Armonth Armonth nos comenta:

    No sé si te servirá para eso, el plugin está mejor preparado para casos particulares (es decir: poner el slug viejo manualmente para hacer la redirección)…

    Lo mejor sería una regla htaccess que hiciera la redirección y de paso añadir el error 301 (Movido permanentemente) para que los buscadores sepan que el cambio es permanente…

    No sé exactamente cómo deberia ser el htaccess (las expresiones regulares siempre se me han dado mal) pero lee esto y esto sobre expresiones regulares.

    Por último: todos los plugins (salvo raras excepciones) que funcionan bajo 2.0 (e incluso 1.5.x) funcionan en la 2.0.1 y superiores…

    Miércoles, 18 de Octubre/2006 @ 15:18

  8. Gravatar de Gosku Gosku nos comenta:

    Gracias por tu respuesta.
    Mi problema principal es que la dirección nueva contiene %category% y la vieja no, y no sé cómo sacarla para incluirla en la regla de permalink nueva…
    si consiguiera averiguar eso de alguna manera, ya me las podría apañar con las expresiones regulares… ¿Alguien sabe algo al respecto?

    Muchas gracias de antemano.

    Jueves, 19 de Octubre/2006 @ 1:38

  9. Gravatar de Armonth Armonth nos comenta:

    El “problema” es que ahora WordPress saca las reglas de no-sé donde, antes en las 1.5.x al crear el htaccess te ponía muchas reglas y si tuviera a mano el código…

    Creo que era index.php?p=x&category=x donde “x” el ID, quizá te ayudará si encuentras una versión de WP 1.5.x, la instalas y le haces crear un fichero .htaccess pero sí: Yo también he tenido como principal problema el %category% al intentar resolver tu caso…

    Jueves, 19 de Octubre/2006 @ 10:09

  10. Gravatar de Gosku Gosku nos comenta:

    Vale, se me ocurre una cosa. La verdad es que me da igual que los viejos permalinks no redireccionen a los nuevos. Sólo quiero que el enlace no se pierda, por lo que ¿podría redireccionar /%year%/%month%/%day%/%postname%
    a
    /index.php?name=%postname%
    ?

    ¿Cuál sería la regla para eso? Me gustaría dejarlo así, al menos hasta que encuentre una solución exacta de lo que quiero…. De esta forma, en el blog los permalinks sí se actualizarían automáticamente, y los enlaces externos que hubieran enlazado a los permalinks viejos seguirían funcionando, aunque no tuvieran un “Nice Permalink”.
    ¿Podrías echarme una mano con la regla?

    Te copio la información actual de mi .htaccess, por si sirviera de ayuda:

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /wordpress/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wordpress/index.php [L]

    # END WordPress

    Muchísimas gracias por la ayuda que me estás prestando… Espero no estar siendo muy pesado…

    Jueves, 19 de Octubre/2006 @ 15:29

  11. Gravatar de Armonth Armonth nos comenta:

    Estoy haciendo pruebas a ver si consigo algo pero cada vez lo veo peor :\ mientras te lo miro a ver si consigo algo (e igualmente, deberias ir haciendolo) es preparar una lista de sitios que han enlazado un post tuyo (Technorati es tu amigo y la lista de referers también) para — una vez hecho el cambio — pedirles educadamente el cambio de enlace…

    Aunque estes “resignado” a perder enlaces (siempre se pierden) o quieras redireccionarlos, cuantos menos sean redireccionados mejor por lo que asegurate que mínimo los principales referidos te cambian la URL: Google se enterará gracias al htaccess y los blogs mejor que — aunque siga funcionando el viejo enlace — te hagan el cambio…

    Precisamente a ese ejemplo de código me refería: WordPress al usar permalinks en wp 1.5.x generaba un montón de líneas en el htaccess que te orientarian a lo que quieres hacer (por ej: recuerdo que index.php?p=$1 equivale a ?p=x en la URL donde x es el post y $1 se usa como primera variable)…

    WordPress 2.0 en cambio guarda internamente (no sé donde) las reglas de permalinks y solo deja esas 5 líneas…

    Jueves, 19 de Octubre/2006 @ 15:59

Comentarios cerrados