Utilia

Generador de redirecciones .htaccess

Genera redirecciones 301 y 302 para .htaccess o Nginx, fuerza HTTPS y www, traslada un dominio y controla la barra final, sin bucles ni cadenas.

Servidor
Tipo de redirección
Dirección canónica
Barra final
Trasladar todo el dominio

Haz primero una copia de seguridad de tu configuración actual y prueba con 302 antes de pasar a 301: los navegadores guardan en caché las redirecciones permanentes.

Comprobaciones

Cómo usar el generador de redirecciones .htaccess

  1. Elige tu Servidor: Apache (.htaccess) o Nginx, y después el Tipo de redirección: 301 – permanente o 302 – temporal.
  2. En Redirecciones de páginas, escribe una redirección por línea: la ruta antigua, un espacio y la URL nueva, por ejemplo /pagina-antigua.html /pagina-nueva/. También sirven un tabulador, una coma o ->, y puedes pegar URL antiguas completas o líneas Redirect 301 /a /b que ya tengas.
  3. Si quieres, indica Tu dominio (por ejemplo example.com) para que las redirecciones de páginas apunten directamente a la dirección final.
  4. En Dirección canónica, marca Forzar HTTPS y elige Forzar www, Quitar www o Dejar www como está. En Barra final, decide si quieres añadirla o quitarla.
  5. Si todo el sitio ha cambiado de dominio, rellena Trasladar todo el dominio con el Dominio antiguo y la Nueva dirección, y deja marcada la opción Conservar la ruta para que cada página llegue a su equivalente.
  6. Revisa las Comprobaciones y después pulsa Copiar o Descargar para obtener las reglas. Con Cargar un ejemplo verás una configuración completa.

Cómo funcionan las reglas generadas

Para Apache, la herramienta escribe reglas mod_rewrite que empiezan con un único RewriteEngine On. Cada página se convierte en una RewriteRule cuyo patrón comienza por ^/?, de modo que funciona tanto en un archivo .htaccess (donde se elimina la barra inicial) como en un bloque <VirtualHost>. Los puntos, corchetes, signos más y demás caracteres especiales de expresiones regulares de tus rutas se escapan, y un espacio se convierte en \x20. En la URL nueva se escapan $ y %, porque Apache los interpretaría como referencias inversas, y el indicador NE evita que Apache vuelva a codificar la URL.

Una RewriteRule nunca ve la cadena de consulta. Cuando una dirección antigua la incluye, como /product.php?id=42, la herramienta añade una línea RewriteCond %{QUERY_STRING} ^id=42$ y el indicador QSD, para que los parámetros antiguos se descarten en lugar de copiarse a la página nueva.

Las reglas se ordenan para evitar saltos innecesarios: primero el traslado de dominio, luego las redirecciones de páginas, después la barra final y por último HTTPS y www. HTTPS y www se gestionan con una sola regla, así que http://www.example.com llega a https://example.com con una única redirección. Si se conoce tu dominio, las redirecciones de páginas y de barra final ya apuntan a la dirección HTTPS final.

Para Nginx, HTTPS, www y el traslado de dominio se convierten en bloques server independientes con return 301, y las redirecciones de páginas se convierten en líneas rewrite que debes pegar dentro de tu bloque server principal. Se ejecutan antes de la selección de location, por lo que también tienen prioridad sobre la regla de la barra final. Un ? al final de un destino impide que Nginx añada la cadena de consulta antigua cuando no corresponde.

Comprobaciones que se realizan

  • Una página que redirige a sí misma, o dos páginas que se redirigen mutuamente (un bucle que acaba en «demasiadas redirecciones»).
  • Cadenas como A → B → C: haz que A apunte directamente a C, porque cada salto adicional ralentiza a los visitantes y desperdicia presupuesto de rastreo.
  • La misma dirección antigua repetida, en cuyo caso solo se aplicaría la primera regla.
  • Un destino que no es ni una URL absoluta ni una ruta que empiece por /, o un destino http:// o con el www equivocado en tu propio dominio.
  • Un ajuste de barra final que volvería a redirigir un destino o lo devolvería a su origen.

Preguntas frecuentes

¿Debo usar 301 o 302?

Usa 301 cuando el cambio es permanente: los buscadores transfieren las señales de la página antigua a la nueva y actualizan su índice. Usa 302 para cambios temporales, como un mantenimiento o una campaña corta. Los navegadores guardan en caché las redirecciones 301, así que prueba primero con 302.

¿Dónde coloco el archivo .htaccess?

En la carpeta raíz del sitio (a menudo public_html o www), junto a index.php o index.html. El archivo descargado se llama htaccess.txt; cámbiale el nombre a .htaccess o pega las reglas al principio de tu archivo actual. Guarda una copia del original.

¿Por qué RewriteRule en lugar de Redirect 301?

Las líneas Redirect pertenecen a mod_alias y se ejecutan en una fase distinta de RewriteRule. Si mezclas ambas en un mismo archivo, el orden resulta difícil de prever. Usar solo mod_rewrite mantiene todas las reglas en una secuencia predecible y permite comparar cadenas de consulta.

Mi sitio muestra «demasiadas redirecciones» tras forzar HTTPS. ¿Por qué?

Detrás de un balanceador de carga, una CDN o un proxy que termina el HTTPS, Apache ve todas las peticiones como HTTP sin cifrar, así que %{HTTPS} siempre está desactivado. En ese caso comprueba la cabecera reenviada, por ejemplo con RewriteCond %{HTTP:X-Forwarded-Proto} !https, o activa la redirección en la CDN.

¿Esta herramienta modifica mi servidor?

No. Solo genera texto en tu navegador. No se envía nada a ningún sitio y tú decides dónde y cómo instalas las reglas.