Acerca de las redirecciones de .htaccess
Cuándo necesitas redirecciones
Cada vez que cambia una URL. Un rediseño, una reestructuración, un cambio a HTTPS o la combinación de una página con otra: cada uno de estos casos deja una dirección antigua que las personas y los motores de búsqueda aún conservan.
Una redirección les lleva a la nueva página y, si se hace correctamente, transmite las señales de posicionamiento que había acumulado la URL antigua. Omítela y esas señales se perderán, al igual que cualquiera que siga un enlace antiguo.
Este generador convierte una lista de URL antiguas y nuevas en las reglas de .htaccess necesarias para hacerlo.
Qué código 3xx usar
Un 301 indica que el cambio es permanente. Los motores de búsqueda transfieren las señales de la URL antigua a la nueva y, con el tiempo, eliminan la dirección antigua de su índice. Esto es lo que quieres en casi todos los casos.
Un 302 indica que el cambio es temporal. La URL antigua sigue indexada y conserva sus señales, lo cual es adecuado para una página en mantenimiento o una promoción estacional, pero no para cualquier otra cosa. Un 302 que se mantiene durante meses es una de las formas más discretas de perder posiciones, porque nada parece estar fallando.
307 y 308 son los equivalentes más recientes de 302 y 301. Los motores de búsqueda los tratan de la misma manera, y la diferencia es técnica: conservan el método de solicitud original, por lo que un POST de un formulario llega a la nueva URL como un POST en lugar de convertirse en un GET. Esto es importante para las API y los gestores de formularios, pero rara vez para las páginas normales. Apache necesita la versión 2.4 o posterior para servir una redirección 308.
El resto del rango 3xx no sirve para esto. Los códigos 300 y 305 prácticamente no se utilizan, el 304 es una respuesta de caché en lugar de una redirección, y el 303 existe para enviar al navegador a una página de confirmación después del envío de un formulario; ninguno de ellos debe incluirse en un archivo de redirecciones.
Cómo funciona realmente la coincidencia
La redirección coincide con el inicio de la ruta, no con la ruta completa. Una regla para /blog también captura /blog/post y /blog/category/thing, aunque no se haya indicado nada para ellas. Esto resulta útil cuando se conoce este funcionamiento y sorprendente cuando no, porque una regla amplia colocada por encima de una específica hace que esta última sea inalcanzable.
Este mismo comportamiento es el que permite trasladar un dominio completo: una sola regla con / como dirección antigua captura todas las páginas del sitio. Apúntala a la raíz del nuevo dominio y todas las URL seguirán ese destino.
Lo que Redirect no entiende son los patrones. Aquí no hay comodines, por lo que /* se interpreta como una ruta literal y no coincide con nada; la coincidencia por prefijo ya cumple esa función. Cuando realmente necesites un patrón, RedirectMatch utiliza una expresión regular, y solo merece la pena recurrir a él cuando un prefijo no sea suficiente.
Errores comunes
- Redirigirlo todo a la página de inicio, lo que se interpreta como un 404 leve y no ayuda a nadie.
- Cadenas en las que A lleva a B y B lleva a C. Apunta cada URL antigua al destino final.
- Bucles en los que dos reglas envían el tráfico de un lado a otro hasta que el navegador se da por vencido.
- Redirigir a una página que no es un sustituto adecuado de la anterior.
- Editar .htaccess sin una copia de seguridad. Un error de sintaxis puede dejar todo el sitio fuera de servicio.
Dónde van estas reglas
.htaccess es un archivo de configuración de Apache que se encuentra en la raíz de tu sitio. LiteSpeed también lo interpreta; Nginx no, y necesita su propia sintaxis en la configuración del servidor.
Las reglas se aplican en orden, así que coloca las redirecciones específicas por encima de las generales. Guarda una copia del archivo operativo antes de cambiar nada, porque un error aquí devuelve un error 500 en todas las páginas en lugar de fallar silenciosamente.
Para un puñado de URL, este archivo es el lugar adecuado. Para cientos de ellas, un plugin o una regla basada en una base de datos resulta más fácil de mantener que un archivo que nadie quiere abrir.
Uso del generador de redirecciones de .htaccess
Elige el tipo de redirección, añade una fila por cada URL que haya cambiado y descarga o copia las reglas. Las rutas antiguas deben ser relativas a tu dominio; los destinos deben ser URL completas.
Después, prueba algunas manualmente. Una redirección que funciona en un navegador pero devuelve el código de estado incorrecto sigue haciendo que pierdas las señales que debía transmitir.
Qué hacer a continuación
Comprueba que las reglas funcionan como esperas con nuestro
comprobador de redirecciones, que sigue cada salto y muestra los códigos de estado. Confirma que el destino devuelve un
código de estado de 200 y crea el resto de tu configuración con el generador de
.htaccess.