Redireccionamientos 301 de urls con espacios en .htaccess

Fotografía: Ian Muttoo (Creative Commons)
Cuando migramos una web de un domino a otro distinto o efectuamos una modificación en la estructura de enlaces de un sitio formado, por ejemplo, por urls con sufijos HTML, debemos hacer redireccionamientos. Estos van en el fichero .htaccess y sirven para indicarle a los robots de Google, la correspondencia entre las antiguas páginas y su nueva ubicación. Así evitamos la proliferación de errores 404 y pasamos la mayor parte del SEO que tengan estos contenidos.
Con el tiempo, Google acabará eliminando los enlaces antiguos, aunque doy fe de que tarda bastante en llevarlo a cabo. En guías de SEO se señalan diversos plazos, algunos de pocos meses, pero he comprobado en entradas redireccionadas desde hace años que, al quitar su código, Google Webmaster me notificaba inmediatamente un error 404. Si no tenemos demasiados, no ocurre nada, sin embargo considero que lo mejor es dejar las redirecciones permanentemente y esto resulta fundamental para las páginas que reciban enlaces desde otros sitios.
Existen muchos tutoriales que explican los diferentes tipos de redireccionamiento, pero en este artículo me voy a detener en un caso particular, sobre el que hay poca información. Se trata de las urls con espacios, las cuales habremos de situar entre comillas simples en .htaccess, para que sean interpretadas de manera correcta. Lo vemos con dos ejemplos:
– La modificación es dentro del mismo dominio. Aquí podemos utilizar direcciones relativas:
Redirect 301 '/antigua pagina.html' /nueva-pagina/
– Si es hacia un nuevo dominio, insertamos la url completa de destino:
Redirect 301 '/antigua pagina.html' https://www.nuevodominio.com/nueva-pagina/
Los navegadores usan los caracteres %20
para los espacios en blanco, siendo ésta una circunstancia que debemos ignorar, pues no va a funcionar una línea de código así:
Redirect 301 '/antigua%20pagina.html' https://www.nuevodominio.com/nueva-pagina/
Por último, comentar que ha de estar activado el mod_rewrite de Apache, para poder redireccionar. En caso de que lo esté, el archivo .htaccess contendrá la siguiente línea:
RewriteEngine On
Muchísimas gracias!
me has solucionado un problema que arrastraba durante mucho tiempo!
Me alegro, Jon. ¡Un saludo!
Hola Alberto, no consigo hacer que funcione tal y como tu has dicho tengo una url con esta estuctura segun webmastertools:
directorio/subdirectorio/url20%con20%espacios.pdf
Quiero redireccionarlo a un nuevo dominio por lo que la línea que agrego a htaccess es la siguiente:
redirect 301 ‘directorio/subdirectorio/url con espacios.pdf’ http://www.nuevodominio.com»
pero me lanza un error 500
Gracias por tu ayuda y por tu artículo.
¡Hola Juan!
En el ejemplo que comentas, sobran las comillas del final de la línea:
www.nuevodominio.com"
Además, hay un detalle imprescindible para que funcione el redireccionamiento y que es fácil que pase desapercibido, acerca de las comillas simples:
‘directorio/subdirectorio/url con espacios.pdf’
.Deben escribirse con trazo recto (‘) para que .htaccess las interprete correctamente. Apenas se nota la diferencia, pero es fundamental. Por tanto, quedaría así:
redirect 301 'directorio/subdirectorio/url con espacios.pdf' http://www.nuevodominio.com
Cambiando estos dos detalles debería de funcionarte.
Excelente Alberto, este detalle de los espacios en blanco y el uso de comillas me estaba dando miles de problemas, por error en la programación se crearon urls con espacios en blanco y además se indexaron en google todas ellas, cuando hice las correcciones no encontraba forma de redireccionarlas correctamente.
Te agradezco un montón! Saludos
¡No hay de qué, Alan! Es un tema sobre el que apenas existe documentación. Un saludo.
Muchísimas gracias, tenía este problema hace tiempo pero no conseguía arreglarlo. ¿Sabrías a ciencia cierta como sería para urls con tilde o urls con ñ? Muchas gracias
Hola José Luis. Me alegro que el artículo te haya servido de ayuda. Sobre lo que me preguntas, la verdad es que no se me ha presentado el caso, pero te paso un enlace a un hilo del foro para webmasters de Google donde hablan del tema: https://productforums.google.com/forum/#!topic/webmaster-es/4o5Fuijr0gQ
Un cordial saludo.
Estimado Alberto muchas gracias sobre el detalle de los espacios en blanco no lo encontraba en ninguna web
Es un pequeño detalle que no es fácil de encontrar. Gracias por tu comentario.
Saludos.