Cómo redireccionar un dominio sin www a con www
En este tutorial voy a explicar cómo redireccionar un dominio sin las www a un dominio con las www de manera automática en el servidor mediante la modificación del fichero htaccess y que resulte transparente al usuario.
Redireccionar dominio sin www a www
No creo que pueda penalizar una web por contenido duplicado, pero sí que puede que perdamos autoridad en nuestra web con los enlaces que nos apuntan.
Para evitar este problema, tenemos que crear la siguiente redirección:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dominioSINlastreswww.com
RewriteRule ^(.*)$ http://www.dominioCONlastreswww.com/$1 [R=301,L]
El código anterior redirecciona la web sin las www a una web con las www.
Explicación del código
<IfModule mod_rewrite.c>: Comprobamos que nuestro servidor tiene activo el módulo mod_rewrite.c, si es así continuará con el código.
RewriteEngine on: Activa la función de reescritura en el servidor.
RewriteCond %{HTTP_HOST} ^midominio.com : Es una condicional, en programación lo que sería un if, es una condición que se tiene que cumplir para seguir con el resto de instrucciones.
En este caso si la variable %{HTTP_HOST} es igual a www.midominio.com, avanzaremos a la siguiente instrucción.
RewriteRule ^(.*)$ http://www.midominioconlaswww.com/$1 [R=301,L] : Cuando la url sea lo que sea se redirecciona a la a la página http://www. midominioconlaswww.com/. Al final de esta línea de código hay unos flags que explicaremos más adelante en el apartado de flags y caracteres.
</IfModule>: Para finalizar la redirección cerramos el condicional principal.
Flags y caracteres
- ^ : Indica el principio de la línea.
- $ : Indica el final de la línea.
- . : Indica que puede ser cualquier carácter.
- * : Indica que puede ser 0 o más caracteres.
- + : Indica que puede ser 1 o más caracteres.
- (.*) : Indica cualquier cosa.
- R=301: Indica que el redireccionamiento es permanente 301.
- L: Si se cumple la norma, se para la ejecución del código y no se ejecuta ninguna condición mas.
Redireccionar dominio con www a sin www
Si por el contrario se quiere redirecciones la web con www a una web sin www, se tendría que copiar el siguiente código en el .htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.dominioCONlastreswww.com
RewriteRule ^(.*)$ http://dominioSINlastreswww.com/$1 [R=301,L]
Con este simple código ya tendremos completada nuestra redirección hecha y así evitaremos posibles duplicidades en los buscadores. Como complemento a este tutorial, os dejo un mega tutorial de redirecciones 301 que he implementado en diferentes sitios web que seguro que os servirá de ayuda.