Permalinks y redirección 301 con .htaccess

Después de mucho tiempo con los mismos permalinks en mi blog, he decido cambiarlos de la siguiente manera:

Antes:
http://www.inkilino.com/YY/MM/DD/titulo-del-post/

Ahora:
http://www.inkilino.com/titulo-del-post.html

Para cambiar los permalinks de tu blog en WordPress, tienes que dirigirte en el panel de administración a Opciones–>Enlaces Permanentes(Permalinks), y ahí seleccionar la opción que más te convenga o poner una personalizada.

permalinks

También he eliminado la palabra “category” de las categorías, que no me gustaba, pensaba poner “categoría“, pero entonces tendría que haber cambiado “tag” por “etiqueta”(para dejarlo todo españolizado) pero al final me he decantado cat“.


Hasta aquí todo fácil ¿verdad? Ahora para asegurarnos que nadie va a poner nuestras URL’s antiguas y se encuentren con un error 404, lo mejor es crear redirecciones 301 en el .htaccess para que eso no pase, en mi caso las líneas que he tenido que añadir al .htaccess, han sido estas:

RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)/$ http://www.inkilino.com/$4.html

RedirectMatch 301 /category/(.*)$ http://www.inkilino.com/cat/$1

¡Ojo! Para cada cambio de permalink las lineas del .htaccess son diferentes, si necesitáis ayuda, preguntar en los comentarios.

Otra redirección 301 que no tendría que faltar en vuestro .htaccess es la de las URL’s canónicas.

24 pensamientos en “Permalinks y redirección 301 con .htaccess

  1. Pingback: Bitacoras.com

  2. Buenas Inkilino,
    Quiero modificarlas URL que tengo ahora y quiero ponerlas tal y como las has puesto (Osea como las tengo en musicaenconcierto.com), pero me da mucha pereza en pensar en las redirecciones.

    Si encuentras alguna forma de hacerlo que no sea manual, te lo agradezco.

  3. Por cierto, porque no creas una entrada para saber como crear el botón CODE, y puedas insertar el código que quieras. Vamos que te modifique los “menor que” y “mayor que”
    Gracias

  4. Jaime, no tienes idea de lo bien que me acaba de venir este artículo. El otro día estuve intentando hacer algo con el htaccess y no encontré manera, y ahora en 20 segundos lo tenía montado :)

  5. Cómo sería para pasar del predeterminado a permalinks, es decir, ahora está de la forma miblog.com/?p=103 y quiero ponerlo de forma miblog.com/mes/dia/titulopost
    ¿Cuál sería la sentencia para hacer la redirección 301?

  6. Gracias! Lo he hecho a través de las opciones de wordpress pero en el archivo .htaccess no aparece nada de redirecciones 301, solo sentencias rewrite, supongo que lo hará en el código, no?

  7. Ana hay que hacerlo tal y como he explicado arriba, en opciones de WordPress y dale permisos 777 al archivo .htaccess para que se puedan sobreescribir los cambios, te deberán aparecer unas lineas así:

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

  8. Jajaja, me sentí identificado, yo tengo los permalinks muy similares a los tuyos; es que migré de Blogger y están así: blog.com/AA/MM/titulo-post.html y me gustaría cambiarlos por blog.com/titulo-post. También pensaba en lo de traducir categorías y etiquetas pero entré en el mismo dilema que tú, jajaja, “o traduzco todo o no traduzco nada”. Yo elegí dejarlo como está. 😀

    Sin embargo, la redirección de las entradas no me funciona. La hice como indicaste pero me sigue apareciendo un error 404. Ahora volví a las direcciones que tenía antes, pero te paso la línea que había agregado al .htaccess

    RedirectMatch 301 /([0-9] )/([0-9] )/(.*)/$ http://www.naturalezainsolita.com/$4

    La puse justo debajo de esta línea:

    RewriteRule . /index.php [L]

    Desde hace tiempo tengo borradas también estas etiquetas porque me daban problemas, no sé si lo haya hecho bien (NEWBIE :$):

    # BEGIN WordPress

    # END WordPress

  9. Pues puede ser que sea por esas etiquetas que has borrado, ¿has probado si funciona con la etiquetas puestas?

    Las que llevan el # delante son comentarios, las puedes borrar, pero las otras 2 no.

    Y en la redirección como has borrado un bloque de números, al final en vez de poner $4 como yo, tendrás que poner $3

  10. Muchísimas gracias por tu rapidez en atenderme, traté de contestarte ayer mismo pero mi conexión estaba fallando y el comentario no se enviaba.

    Te decía que el problema sí era por el $4; lo cambié por $3, agregué algunos parámetros que faltaban y ahora sí funcionó. Te dejo la línea que escribí y de paso me dices si está bien estructurada:

    RedirectMatch 301 ^/20([0-9] )/([0-9] )/(.*).html$ http://www.naturalezainsolita.com/$3

    Lo que he notado es que Google ha indexado las páginas dos veces; es decir, tanto con la dirección antigua como con la nueva. ¿Te pasó lo mismo a ti? ¿Eso no puede traerme penalizaciones por contenido duplicado?

    En cuanto a las etiquetas que había borrado, decidí no ponerlas porque no se les menciona en ninguno de los artículos sobre .htaccess que he leído, y como te decía, en el pasado sólo me dieron problemas.

  11. Ok, perfecto, pero como comento en el post yo lo dejaría con la extensión .html

    Y lo de Google es normal, todavía no le ha dado tiempo a borrar las URL’s antigüas, pero si picas en una de las antigúas te tiene que redirgir a la nueva.

  12. Pues sí, así me gustan, gracias. :)

    Me puse a curiosear la sección “Sobre mí”, jeje. Tenemos algunas cosas en común: mi cumpleaños es el 14 de septiembre, adoro la carne asada, mis películas preferidas son de ciencia ficción y superhéroes, y entre mis series favoritas están CSI y Smallville (esta la sigo desde que comenzó).

    Pero soy madridista a morir, así que ya no me caes bien, jajaja. XD

  13. Hola amigos

    cuando voy a dominio.com/peliculas me salen las peliculas que tengo pero hice una pagina que era dominio.com/peliculas y bueno lo cambie a dominio.com/peliculass para diferenciarlo del primero y ahora cuando entro a dominio.com/peliculas me redirecciona al que esta acabado en dos “s” y sin embargo quiero deshacer todos estos cambios y dejarlo como estaba al principio y no hay manera :S

    alguien me dice que hay que poner en el .htaccess para revertir todo el proceso?

    gracias de antemano

    saludos! buen blog :)

  14. Hola, tengo una duda…

    Cómo puedo saber si mi redireccionamiento es tal como lo pusiste tu: RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)/$ http://www.midominio.com/$4.html

    o si por en cambio es terminado en $otronumero.html

    El caso es que las URL de mi blog las quiero modificar como las tienes tu, a .html

    Saludos

Deja un comentario