El archivo htaccess (Hypertext Access) 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. También 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 ASCII 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 líneas.
Los archivos .htaccess están habilitados por defecto, pero se puede dar el caso en que no lo estén. Este comportamiento se controla a través de la directiva AllowOverride que se encuentra en el archivo de configuración httpd.conf de Apache.
Gracias al .htaccess podemos controlar el comportamiento de nuestros 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 cómo usar .htaccess para redireccionar páginas web, URLs antiguas, directorios, etc.
Guía práctica de redirecciones con .htaccess
Redireccionar de un dominio a otro
Transfiere todo el tráfico y la fuerza de un dominio viejo hacia un dominio nuevo.
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
Si alguien escribe cualquier cosa después del dominio, siempre lo redireccionará a la nueva URL principal (por ejemplo: http://sudominio.com/pagina-web lo redireccionará a http://nuevodominio.com).
RewriteEngine on RewriteCond %{HTTP_HOST} ^tu-dominio.com$ [OR] RewriteCond %{HTTP_HOST} ^www.tu-dominio.com$ RewriteRule ^(.*)$ http://www.nuevodominio.com [R=301,L]
Redireccionar una URL a otra URL
Importante para cuando estamos haciendo SEO en nuestra página web y cambiamos el nombre de un slug o babosa. Se debe redireccionar la URL antigua hacia la nueva para no perder el posicionamiento.
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 otra página
RedirectMatch 301 ^/viejo-directorio/(.*)$ http://www.tu-dominio.com/nueva-pagina
Redireccionar de WWW a sin WWW
Evita problemas de contenido duplicado de cara a Google unificando tu dominio.
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 (Forzar SSL)
Garantiza que toda la navegación de tu sitio web se realice de forma segura cifrada bajo el protocolo HTTPS.
RewriteEngine on RewriteOptions inherit RewriteCond %{SERVER_PORT} 443 RewriteRule ^
Comentarios