Comenzamos en: 17d 8h 26m 43s
PLAZAS LIMITADAS

Redireccionar caracteres especiales y espacios

¿Sabías que los caracteres especiales pueden arruinar tus redirecciones? Aquí te explico cómo implementarlas de una forma correcta.

Autor: Carlos Sánchez
Temática: Servidores
Fecha de publicación: 2022-08-03
Última revisión: 2022-09-03

Hay ciertas dudas que pueden surgir cuando se trata de hacer redirecciones desde el servidor que pueden presentar un quebradero de cabeza.

Tenemos que tener en cuenta, que si nuestra URL tiene un símbolo de interrogación «?» se trata de un parámetro. Entonces ese tipo de redirección sería una redirección de query string y por sus características se hace diferente.

Redirección de caracteres especiales

Cuando vemos una URL con caracteres especiales como letras acentuadas o letras en otros alfabetos, al copiar la URL para redireccionarla, nos acaba mostrando un código así:

Código UTF-8 Bytes de Grupohost

Por ejemplo, si nos metemos en la URL https://example.com/acentuación y copiamos la URL de nuevo, nos saldrá esta otra URL: https://example.com/acentuaci%C3%B3n

Esto se debe a la propia codificación de caracteres. Sin embargo, aunque pueda parecer contraintuitivo, la solución correcta por medio de un RedirectMatch, sería poner la URL con los caracteres tal cual, no la codificación UTF8. Y de hecho ocurriría exactamente lo mismo con caracteres en otros alfabetos, tal y como muestro en este vídeo:

 

Por lo tanto, la forma correcta de hacer la redirección sería esta:

implementacion correcta de redirecciones con caracteres especiales

Y no esta:

redirigir acentos htaccess

Redireccionar todos los acentos desde el servidor

Ahora bien, también hay formas de automatizar el proceso. Por ejemplo, esta sería una forma de hacer que todas las á en las URL se cambien por a.

</IfModule>
RewriteEngine On
RewriteRule ^([^á]*)á([^á]*á.*) $1a$2 [N]
RewriteRule ^([^á]*)á([^á]*)$ /$1a$2 [L,R=301]
</IfModule>

No se puede hacer un Replace como con JavaScript desde el Servidor, y como puede ser que haya varias «á» en una misma URL, se hace un Replace «en plural» y luego otro para la última en ser reemplazada. En el Master de SEO, los alumnos tendrán un cheatsheet para una implementación con todos los acentos. En cualquier caso, tendríamos que tener todos los archivos con su nombre reemplazado. Aunque hay formas de hacer esto rápidamente, por ejemplo con la herramienta Bulk Rename Utility.

¿Por qué no funciona con los espacios en blanco?

El %20 que es el código que deja un espacio en el encoding de ASCII para URLencoding de ASCII para URL. Este espacio en blanco se puede producir principalmente por un contenido multimedia con un espacio en blanco.

En este ejemplo de una web del estado, podemos ver este PDF que se subió con un espacio en blanco y genera ese «%20»:

URL con espacios en blanco

Para hacer una redirección de una URL con estas características, tendremos que utilizar Regex y sustituir los espacios por un «\s». Afortunadamente para hacerlo más sencillo, he automatizado ese proceso en la herramienta de redirecciones de .htaccess y la de nginx:

espacios en blanco htaccess

¿Quieres hacer el Master de SEO Técnico?

Accede a una formación avanzada que te permitirá aplicar e implementar SEO en cualquier tipo de WEB

¡Accede al Master de SEO Técnico!
Tal vez te interesen estos artículos:

Si te ha gustado esta publicación, siempre me lo puedes agradecer dándome like en esta publicación de LinkedIn sobre este mismo artículo.