La redirección 301 indica que la página se ha movido de forma permanente a una nueva ubicación. Esto es útil para SEO, ya que los motores de búsqueda actualizarán sus índices para reflejar la nueva URL.
Sintaxis:
Redirect 301 /vieja-url /nueva-url
Ejemplo:
Redirect 301 /antigua-pagina.html /nueva-pagina.html
La redirección 302 indica que la redirección es temporal. Esto no actualiza los índices de los motores de búsqueda de forma permanente.
Sintaxis:
Redirect 302 /vieja-url /nueva-url
Ejemplo:
Redirect 302 /pagina-temporal.html /nueva-pagina.html
RewriteRule
El módulo mod_rewrite de Apache permite redirecciones más complejas usando expresiones regulares.
Ejemplo de redirección simple:
RewriteEngine On
RewriteRule ^vieja-pagina.html$ /nueva-pagina.html [R=301,L]
Si necesitas redirigir de un dominio completo a otro, puedes usar la siguiente configuración:
Ejemplo:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.viejo-dominio\.com$ [NC]
RewriteRule ^(.*)$ http://www.nuevo-dominio.com/$1 [R=301,L]
Para redirigir todo el tráfico HTTP a HTTPS, usa:
Ejemplo:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Para redirigir todas las URL de un directorio a otro:
Ejemplo:
RewriteEngine On
RewriteRule ^old-directory/(.*)$ /new-directory/$1 [R=301,L]
1. Orden de las reglas: Las reglas en .htaccess se procesan en orden, así que asegúrate de poner primero las redirecciones más específicas.
2. Uso de flags: Los flags [R=301,L] indican una redirección permanente y que es la última regla que debe aplicarse, respectivamente.
Estas son las formas más comunes de realizar redirecciones en .htaccess. Ajusta las reglas según tus necesidades específicas.
Jorge García
Fullstack developer