Vamos a ver, brevemente, el uso del htaccess para redireccionar dominios o url a otras. Antes de nada decir que el htaccess es muy potente en cuanto al funcionamiento, por lo que, cualquier cambio afectará al funcionamiento de todo el sitio web. Un simple espacio, unas comillas donde no debe o un caracter que no toca, puede hacer que no cargue nada de nuestra web. Recomendamos hacer copia antes de este fichero y realizar los cambios con precaución.
Con el .htaccess se puede redireccionar un dominio a a otro diferente, a una URL existente, a https, al dominio sin www, etc…
El .htaccess es un archivo oculto, debe llevar un «punto» delante del nombre y queda de esta forma .htaccess. Se puede editar con cualquier editor de texto plano o, en muchas ocasiones, desde el propio panel de control del hospedaje. Debe estar situado en el raíz del hospedaje o sitio web, normalmente.
Casos prácticos:
Para redireccionar un dominio a uno nuevo (hrtuweb.es será el nuevo dominio de ejemplo que usemos):
Redirect 301 / https://www.hrtuweb.es/
Para redireccionar todo el contenido de un dominio a la página inicial del nuevo dominio.
RedirectMatch 301 ^(.*)$ https://www.hrtuweb.es/
Para redireccionar un sitio web completo a otra URL. (usaremos hekate.es como el dominio actual y hrtuweb.es como el nuevo dominio)
RewriteEngine on RewriteCond %{HTTP_HOST} ^hekate.es$ [OR] RewriteCond %{HTTP_HOST} ^www.hekate.es$ rewriterule ^(.*)$ https://www.hrtuweb.es [R=301,L]
Redireccionar una URL a otra URL.
Redirect 301 /vieja-pagina.htm https://www.hrtuweb.es/nueva-pagina.htm (muy practico para seo y no perder visitas en caso de cambio de dominio)
Redireccionar un directorio antiguo de un dominio a otro nuevo directorio.
Redirect 301 /viejo-directorio/ https://www.hrtuweb.es/nuevo-directorio/
Redireccionar un directorio eliminado o todo el contenido viejo a otro directorio.
RedirectMatch 301 ^/viejo-directorio/(.*)$ https://www.hrtuweb.es/nueva-pagina
Redireccionar de www a sin www (práctico para no duplicar contenido en los buscadores como google)
Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.hrtuweb.es [NC] RewriteRule ^(.*)$ http://hrtuweb.es/$1[R=301,L]
Esto mismo se puede hacer a la inversa, solo tienes que especificar el dominio sin www en el rewritecond y ponerlo con www en el rewriterule.
Redireccionar un sitio completo de http a https (zona segura)
RewriteEngine On RewriteCond %{ENV:HTTPS} !on [NC] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.hrtuweb.es/$1 [R,L]
Y si solo lo queremos hacer con un directorio:
RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} tienda RewriteRule ^(.*)$ https://hrtuweb.es/tienda/$1 [R,L]
Redireccionar subcarpeta para que figure como raíz del dominio (en el navegador muestra siempre el dominio o raíz y no la carpeta) Cambia hrtuweb.es por tu dominio y tienda por el nombre de tu carpeta.
RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.)?hrtuweb.es$ RewriteCond %{REQUEST_URI} !^/tienda/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /tienda/$1 RewriteCond %{HTTP_HOST} ^(www.)?hrtuweb.es$ RewriteRule ^(/)?$ tienda/index.php [L]
Podíamos seguir con muchos mas ejemplos, pero estos son los mas habituales. Como decimos al principio de este post, el htaccess es muy potente y se pueden hacer grandes cosas con el.