El otro día estaba haciendo pruebas con una web de desarrollo y me encontré con un detalle curioso: si escribes mal la URL de una página en un sitio WordPress, el propio WordPress intentará entender qué es lo que le estás pidiendo y «arreglará» tu petición para evitar mostrarte un error 404. Veámoslo con un ejemplo, que es más fácil de entender.
Hace unas semanas escribí una entrada en el blog llamada «Descubre dónde añadiste errores en el código usando Git Bisect». Si pulsas en el enlace, verás que su URL es https://neliosoftware.com/es/blog/git-bisect-para-encontrar-commit-con-errores/
. Pues bien, ¿qué pasaría si escribimos una URL que se parezca a la buena pero que sea incorrecta? Pues lo puedes descubrir tú mismo: escribe https://neliosoftware.com/es/blog/git-bisect
en tu navegador y verás que, ¡oh, sorpresa!, WordPress te envía a la página que toca:

Pero es que esto no siempre funciona… si en lugar de poner «git-bisect» (que es como empieza la entrada) hubiera escrito «encontrar-commit-con-errores», entonces sí me saldría un error 404:

Parece, pues, que esta funcionalidad de WordPress solo funciona (valga la redundancia) cuando estamos poniendo el nombre incompleto desde el principio…
Entonces la duda es: que WordPress intente arreglar una URL que no existe en lugar de devolver un 404, ¿es bueno o es malo? Y la respuesta es que parece que no hay consenso.
Según el bug #16557 reportado hace ahora 9 años, debería existir un filtro que permitiera desactivar este comportamiento según desee el usuario. Pero a pesar de que tenemos un parche para ello, por algún motivo no se ha metido la corrección en el núcleo de WordPress aún (y a saber cuándo llegará… si es que llega algún día).

Nelio Content
Estoy tan contento con Nelio Content que parece que me hayan pagado para hablar bién de él… pero es que también a ti te encantará: funciona como prometen, la programación automática de mensajes es increíble, la calidad/precio no tiene parangón y su equipo de soporte se siente como si fueran parte del tuyo.

Panozk
Cómo evitar la auto-corrección de URL
Para solucionar este «problema» (si es que lo consideras un problema), tienes dos opciones. O bien aplicas la solución que propuso Andrew Nacin (uno de los desarrolladores líder de WordPress) añadiendo esta pequeña función:
function remove_redirect_guess_404_permalink( $redirect_url ) {
if ( is_404() ) {
return false;
}//end if
return $redirect_url;
}//end remove_redirect_guess_404_permalink()
add_filter( 'redirect_canonical', 'remove_redirect_guess_404_permalink' );
siguiendo las instrucciones que te dimos en esta otra entrada, o bien instalas el plugin Disable URL Autocorrect Guessing de Hauke Pribnow, quien ya te da la faena hecha.
Imagen destacada de David Brooke Martin en Unsplash.
Deja una respuesta