¿Como utilizar el htaccess para redireccionar?
El archivo .htaccess es usado frecuentemente para especificar restricciones de seguridad para un directorio en particular. Los directorios usan el .htaccess para reescribir urls largas y complejas en otras más simples y fáciles de recordar, permiten bloquear usuarios por su dirección ip, dominio, bots y arañas web. Tambien permiten controlar los errores generados del lado del servidor.
Al momento de crear un .htaccess se debe recordar que este no tiene una extensión como cualquier otro archivo, se debe guardar en modo ASCCI y no en binario. Programas como el bloc de notas tienden a agregarle automáticamente la extensión .txt pero hay que quitarla. Otro punto a tener en cuenta es que el archivo debe tener permisos de lectura-escritura-ejecución (CHMOD) 644. Con esto hacemos que el archivo pueda ser usado por el servidor pero se previene que sea accedido a través del navegador. Más adelante veremos que el .htaccess también puede ser protegido mediante un par de lineas.
Los .htaccess están habilitados por defecto, pero se puede dar el caso en que no lo esté. Este comportamiento se controla a través de la directiva AllowOverride que se encuentra en el archivo de configuración httpd.conf
Gracias al .htaccess podemos controlar el comportamiento de nuestro sitios y aplicaciones Web para que estos sean un poco más seguros, hacer redirecciones, crear mensajes de error más personalizados, restringir el acceso a determinadas carpetas, evitar que se listen directorios específicos, etc.
El .htaccess por lo general siempre estará ubicado en el directorio raíz de nuestros sitios Web, también puede estar ubicado en directorios específicos dentro de un servidor Web pero por regla general, debería existir uno en todo directorio raíz.
En este artículo explicaremos como usar .htaccess para rediccionar páginas web, url antiguas, directorios etc.
Redireccionar de un dominio a otro:
Redirect 301 / http://www.dominionuevo.com
Redireccionar todo el contenido de un dominio a la página inicial de otro dominio
RedirectMatch 301 ^(.*)$ http://www.dominionuevo.com
Redireccionar página web completa a otra url
RewriteEngine on RewriteCond %{HTTP_HOST} ^tu-dominio.com$ [OR] RewriteCond %{HTTP_HOST} ^www.tu-dominio.com$ rewriterule ^(.*)$ http://www.nuevodominio.com [R=301,L]
Nota: Si alguien escribe cualquier cosa después del dominio siempre lo redireccionará a la nueva URL.
http://sudominio.com/pagina-web lo redireccionará a http://nuevodmominio.com
Redireccionar una url a otra url ( Importante para cuando estamos haciendo seo en nuestra página web y cambiamos el nombre de la url, se debe redireccionar la url antigua por la nueva)
Redirect 301 /vieja-pagina.html http://www.tu-dominio.com/nueva-pagina.html
Redireccionar directorio antiguo de un dominio a otro directorio nuevo
Redirect 301 /viejo-directorio/ http://www.tu-dominio.com/nuevo-directorio/
Redireccionar directorio completo que vas a eliminar a otro directorio
RedirectMatch 301 ^/viejo-directorio/(.*)$ http://www.tu-dominio.com/nueva-pagina
Redireccionar de www a sin www
Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.tu-dominio.com [NC] RewriteRule ^(.*)$ http://tu-dominio.com/$1 [R=301,L]
Redireccionar de sin www a www
Options +FollowSymlinks RewriteEngine on RewriteCond %{HTTP_HOST} ^tu-dominio.com [NC] RewriteRule ^(.*)$ http://www.tu-dominio.com/$1 [R=301,L]
Redireccionar página web completa de http a https
RewriteEngine on RewriteOptions inherit RewriteCond %{SERVER_PORT} 443 RewriteRule ^(.*)$ https://tu-dominio.com [R,L] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://tu-dominio.com [R,L]
Redireccionar directorio web de su web a https
RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} NOMBRE_DIRECTORIO RewriteRule ^(.*)$ https://tu-dominio.com/NOMBRE_DIRECTORIO/$1 [R,L]