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