¿Cómo configurar redireccionamientos con .htaccess?

Un redireccionamiento 301 permanente en el archivo .htaccess permite dirigir a la dirección correcta tanto a motores de búsqueda como a visitantes de un sitio web, y es el método recomendado para dirigir el tráfico cuando por algún motivo se ha cambiado la URL de una serie de páginas.

Estos son los usos más comunes de un redireccionamiento .htaccess 301:

Redireccionar archivos individuales:

Si necesitamos redirigir unos pocos archivos o páginas, digamos desde ejemplo.com/viejo.htm hacia nuevo.htm se puede usar un redirect 301 como este: 

Redirect 301 /viejo.htm /nuevo.htm

También se puede redireccionar hacia un archivo en otro dominio, como ser desde ejemplo.com/viejo.htm hacia ejemplo.net/nuevo.htm:

Redirect 301 /viejo.htm https://ejemplo.net/nuevo.htm

Redireccionar viejo dominio a nuevo dominio:

Si necesitamos cambiar el dominio de un sitio web, podemos redirigir todas las visitas también. Si por ejemplo tenemos que redirigir las visitas a ejemplo.com hacia ejemplo.org se puede usar este fragmento:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^ejemplo.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.ejemplo.com [NC]
RewriteRule ^(.*)$ https://ejemplo.org/$1 [L,R=301,NC]

Forzar el uso de SSL (HTTPS) en un dominio:

El .htaccess también nos permite forzar el uso de HTTPS en un a web que no lo venga usando. Esto es especialmente útil en sitios HTML o PHP que no usen un CMS donde podamos forzar el uso de SSL programáticamente:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Evitar el uso de SSL en un dominio (forzar HTTP):

Por otrro lado, también podemos tener algún caso en que por extraño que parezca, necesitemos forzar el uso de HTTP en lugar del HTTPS:

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Forzar el uso de www. en un dominio:

Si queremos que el sitio web use www en todas sus URLs, podemos usar esto:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^ejemplo.com [NC]
RewriteRule ^(.*)$ https://www.ejemplo.com/$1 [L,R=301,NC]

Eliminar el www. de un dominio:

En otros casos podemos querer que las URLs de un sitio web no usen nunca www. Para eso tenemos este código:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]

Redireccionar los archivos con cierta extensión:

Si por ejemplo cambiamos el formato de una serie de archivos, por ejemplo si hemos convertido los .bmp a .png, podemos usar este código:

RewriteEngine On
RewriteCond %{REQUEST_URI} .bmp$
RewriteRule ^(.*).bmp$ /$1.png [R=301,L]

 

  • htaccess, SSL
  • 0 Los Usuarios han Encontrado Esto Útil
¿Fue útil la respuesta?

Artículos Relacionados

¿Qué hacer si mi sitio muestra un error 500?

El error 500 es un error común que se da cuando hay defectos en la programación de un script en...

¿Dan servicio de mantenimiento a sitios WordPress?

Sí. Creemos que todos tienen derecho a tener un sitio web ágil, funcional y seguro. Y el servicio...

Presentación: Seguridad en WordPress, cómo evitar que hackeen tu web

Les comparto la presentación que di en la Meetup de WordPress Argentina de Agosto 2018, donde fui...

¿Cómo ocultar el cartel de activación que muestra Visual Composer?

La mayoría de las veces, compramos un theme comercial pero no incluye la licencia de Visual...

¿Se puede importar un WordPress preinstalado a Softaculous?

Sí, es posible. Si transferiste una cuenta de cPanel desde otro hosting o instalaste un WordPress...