Archivo htaccess – lo que debes saber

El archivo .htaccess (hypertext access) en extremo resumen es un archivo de texto plano que es leído por nuestro servidor Apache para aplicar configuraciones en el directorio raíz y sus subdirectorios.

Según documentación del proyecto Apache, el uso de este tipo de archivo se debe evitar si tenemos acceso al archivo de configuración principal httpd, esto debido a posibles retardos presentados en el servidor con el uso de esta configuración.

Entre las configuraciones que podemos tener con este archivo se encuentran varios módulos que cambian el comportamiento de las carpetas; la documentación en español para la configuración y módulos la encontramos en:
https://httpd.apache.org/docs/2.4/es/howto/htaccess.html

Advertencía servidor

Configuración Inicial

Por defecto cuando adquieres un hosting con nosotros queda dentro del folder “public_html” el archivo .htaccess

Filezilla
Acceso al archivo mediante Filezilla
# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php72” package as the default “PHP” programming language.
<IfModule mime_module>
  	AddHandler application/x-httpd-ea-php72 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

Debes tener en cuenta cambiar la configuración según tus necesidades (agregando directivas); estas directivas aplican al directorio donde está el archivo y sus folders anidados, por lo que no es necesario tener este tipo de archivos en todas las carpetas, salvo que un subdirectorio requiera alguna configuración particular.

Por rendimiento, solo se deberían tener las directivas absolutamente necesarias; esto debido a que cada que se cargue la página se requiere hacer un llamado a esta configuración, por lo que demasiadas directivas pueden generar retardos en la carga de la página.

Configuraciones de Seguridad

Por defecto el acceso a este archivo debe estar bloqueado para usuarios externos, esto es importante debido a posibles intentos de ataque (búsqueda de vulnerabilidades) observando las directivas configuradas.

403 forbidden
www.midominio.com/.htaccess

En el caso de que se pueda observar el archivo debemos agregar la siguiente directiva (directiva para bloquear acceso al archivo .htaccess):

<Files .htaccess>
Order allow,deny
Deny from all
</Files>

Bloquear Lectura de Archivos

En la actualidad hay bots funcionando 24/7 indexando la información presente en los servidores, por lo que es importante no dejar acceso a archivos que no queramos que se vuelvan públicos, esto se puede observar fácilmente con buscadores como Google por ejemplo con la siguiente búsqueda:

Google Búsqueda
Ejemplo de búsqueda de archivos Excel presentes dentro de un servidor.

Para bloquear el acceso a los archivos que no queramos (según su extensión) que sean públicos debemos agregar la siguiente directiva:

<FilesMatch "\.(htaccess|htpasswd|ini|phps|xlsx|pdf|txt)$">
 Order Allow,Deny
 Deny from all
</FilesMatch>

Tener en cuenta de configurar las extensiones según necesidad.

Bloquear Acceso a nuestra página por IP

Aunque las paginas en internet se consideran de acceso global, muchas veces es recomendable por gestión de tráfico o por cuestiones de seguridad, limitar el acceso a la región en la cual enfocamos nuestra venta de bienes o servicios; esto lo podemos lograr filtrando (permitiendo o denegando) según IP.

Por defecto las direcciones IP según país pueden variar cada cierto tiempo, podemos tanto denegar como permitir su acceso con la siguiente directiva:

Order Deny, Allow
Deny from ip_denegada
Allow from ip_permitida

Un listado de direcciones IP según país o región la podemos obtener de páginas como countryipblocks.

Rango de IP por Pais
https://www.countryipblocks.net/acl.php

En rojo se resaltaron algunas de las direcciones IP que deberíamos permitir para Latinoamérica, tener en cuenta que estas direcciones cambian cada cierto tiempo, y que hay maneras diferentes de poner estas restricciones.

Pagina Error 404

Una de las directivas más utilizadas es configurar la página que será cargada cuando se presente un error en nuestro servidor; con frecuencia y debido al dinamismo de la Web, muchas veces olvidamos actualizar correctamente los links conforme cambiamos accesos a otras paginas dentro de nuestro portal.

Esto es conocido como el error 404, que se produce cuando el usuario solicita una pagina que no se encuentra en el servidor, ya sea por error nuestro o del cliente.

Error 404
Manejo de Google para error 404 [http://www.google.com/paginanoexiste]

Esta directiva se configura de la siguiente manera:

ErrorDocument 404 "/error/error404.php"

Donde el texto entre comilla debe ser reemplazado por la pagina que debe cargar Apache en el caso de que se quiera acceder a una pagina inexistente.

Redireccionar Página de Inicio

Entre las opciones también podemos configurar el redireccionamiento a una pagina de inicio diferente; esto por ejemplo lo podemos usar temporalmente para direccionar a una página promocional o algo que queremos informar.

DirectoryIndex index.html contactenos.html public.html

Con esta configuración el servidor va cargando el archivo que encuentre, según el orden que especifiquemos.

Comentario en archivos .htaccess

Por cuestión de orden, y si tenemos que modificar en un futuro la configuración establecida en el archivo de hiper texto, debemos documentar internamente las directivas que hemos aplicado y su razón de ser.

Para esto utilizamos el caractes ‘#’ al inicio que cada línea que contenta texto que solo será interpretado por nosotros y que no será tomado en cuenta por el servidor Apache.

#Aqui empieza la directiva de control de errores.
#Ruta de archivos de fotos.

En el ejemplo planteado, ambas líneas no serán ejecutadas por el servidor, pero proporcionarán documentación del funcionamiento de la directiva o del texto que escribamos con el fin de recordar el funcionamiento de nuestro código.

CONCLUSION

El archivo .htaccess permite establecer configuraciones que serán determinantes en el comportamiento del servidor para la interpretación de nuestra página Web; es un archivo esencial y en el que debemos trabajar siempre con el mayor cuidado posible, debido a que puede optimizar como ralentizar nuestra página por una buena o mala configuración.

Antes de modificar este archivo se recomienda realizar un respaldo, y leer la documentación con el fin de minimizar los errores; una página donde puedes encontrar resumen de varias de sus directivas es:

http://www.htaccess-guide.com/

RESUMEN BASICO DIRECTIVAS
<Files .htaccess> Order allow,deny Deny from all </Files>Restringe el acceso al archivo de configuración por parte de terceros
<FilesMatch “\.(htaccess|htpasswd|ini|phps|xlsx|pdf|txt)$”>  Order Allow,Deny  Deny from all </FilesMatch>Restringe la descarga y visualización de archivos que se encuentren dentro de nuestro servidor según la extensión del archivo.
Order Deny, Allow Deny from ip_denegada Allow from ip_permitidaEstablece bloqueos o autoriza la carga de la información según la IP de donde se realice la solicitud.
ErrorDocument 404 “/error/error404.php”Establece la dirección de la pagina de error 404 por defecto en el caso de que se encuentre un link roto.
DirectoryIndex index.html contactenos.html public.htmlPermite redireccionar a una página de inicio diferente.
#ComentariosPermite realizar comentarios dentro del archivo de configuración
Share