Redirecciones con htaccess y rewrite – HR tu web
Home / HR tu web / Redirecciones con htaccess y rewrite

Redirecciones con htaccess y rewrite

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.

Top

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Usted puede aceptar o rechazar las cookies nuestras o de terceros desde las opciones de configuración de su navegador. Pinche el enlace para MAS INFORMACIÓN.

ACEPTAR
Aviso de cookies