Qué es exactamente un archivo .htaccess?
.htaccess es un archivo de configuración muy antiguo que controla el servidor Web que ejecuta tu sitio web, y es uno de los archivos de configuración más potentes que jamás encontrarás.
Este archivo de configuración fue codificado en los primeros días de la web (HTTP), para uno de los primeros servidores Web de todos los tiempos. Estos Servidores Web (configurados con htaccess) se conocieron como la World Wide Web, y eventualmente crecieron en el Internet que usamos hoy en día.
A continuación te mostramos 5 de los usos más frecuentes del .htaccess que pueden ayudarte a tomar el control de tu sitio web.
Protección de acceso con contraseña
Los sistemas de protección de contraseña y autenticación ofrecidos por el servidor Web de Apache son probablemente el uso más importante de los archivos .htaccess. Muy fácilmente, podemos proteger con contraseña un directorio (o varios) de un sitio web que requieren un nombre de usuario y contraseña para acceder. El procedimiento de inicio de sesión para estos directorios seguros es manejado automáticamente por el navegador web mediante una interfaz de inicio de sesión emergente (probablemente ya lo hayas visto antes). Las contraseñas también se cifran utilizando uno de los mejores métodos de cifrado disponibles que garantiza que las credenciales de inicio de sesión se mantengan seguras.
Para comenzar, decide qué directorio deseas proteger con contraseña (ten en cuenta que todos los archivos y subdirectorios dentro del directorio estarán protegidos con contraseña), luego crea un archivo .htaccess y utiliza el siguiente ejemplo:
AuthName “Nombre de Usuario”
AuthUserFile /path/to/password/file/.htpasswd
AuthType Basic
Require valid-user
La primera línea indica al servidor web de Apache que el directorio seguro se denomina “Nombre de Usuario”, que se mostrará cuando aparezca el mensaje emergente de inicio de sesión. La segunda línea especifica la ubicación del archivo de contraseñas. Este tipo de protección de contraseña requiere un segundo archivo llamado “.htpasswd”. Las contraseñas relevantes se almacenan aquí y sólo funcionan en sistemas Linux.
La tercera línea especifica el tipo de autenticación, en este ejemplo estamos usando ‘Basic’ porque estamos utilizando la autenticación HTTP básica y finalmente la cuarta línea especifica que necesitamos credenciales de inicio de sesión válidas.
Bloquear/permitir visitantes desde una dirección IP determinada
El bloqueo de visitantes ofrecido por el servidor Web Apache nos permiten denegar el acceso a visitantes específicos o permitir el acceso a visitantes específicos. Esto es muy útil para bloquear visitantes no deseados o para permitir que el propietario del sitio web tenga acceso a ciertas secciones del sitio web, como un área de administración.
Para configurar las restricciones y el bloqueo de visitantes, crea un archivo .htaccess y sigue el siguiente ejemplo:
order allow,deny
deny from 255.0.0.0
deny from 123.45.6.
allow from all
Las líneas anteriores indican al Servidor Web Apache que bloquee a los visitantes de la dirección IP ‘255.0.0.0’ y ‘123.45.6.’, Ten en cuenta que la segunda dirección IP no tiene el cuarto conjunto de dígitos, esto significa que cualquier dirección IP que coincida con los primeros tres grupos de dígitos se bloquearán, por ejemplo ‘123.45.6.10’ y ‘123.45.6.255’ estarían bloqueados.
Mostrar páginas de error personalizadas
Crear páginas de error personalizadas es muy útil, te permite mostrar a los visitantes del sitio web un mensaje de error amigable, por ejemplo, si una URL en tu sitio web no funciona. Esto evita el desagradable error “404 archivos no encontrados” y te permite mostrar un error amistoso, explicando posibles soluciones y guiando al visitante de nuevo en el contenido de tu sitio web, en lugar de dejarlos frustrados y perdidos.
Para configurar documentos de error personalizados, crea un archivo .htaccess y utiliza el siguiente ejemplo:
ErrorDocument 404 /paginas_error/404.html
La línea anterior indica al servidor Web Apache que muestre el documento ubicado en /paginas_error/404.html (bajo tu dirección de dominio / sitio web) siempre que se produzca un error 404 (archivo no encontrado).
En este ejemplo, hemos asumido que has creado el documento de error y lo has llamado “404.html” y que lo has colocado en un directorio denominado “paginas_error” bajo tu nombre de dominio. Por ejemplo, https://www.tudominio.com/paginas_error/404.html
El documento 404.html es un documento HTML normal como los demás de tu sitio web y puedes mostrar cualquier contenido que desees.
Redireccionar Visitantes
Los redireccionamientos nos permiten dirigir a los visitantes del sitio web desde un documento dentro de tu sitio web a otro. Esto es útil, por ejemplo, si has movido el contenido de tu sitio web y deseas redirigir a los visitantes de los vínculos antiguos a la nueva ubicación del contenido.
Para configurar los redireccionamientos, crea un archivo htaccess y sigue el ejemplo a continuación:
Redirect / antiguo_dir / https://www.tudominio.com/nuevo_dir/index.html
La línea anterior indica al Servidor Web de Apache que si un visitante solicita documentos ubicados en el directorio ‘antiguo_dir‘, entonces se mostrará el documento ‘index.html‘ ubicado en el directorio ‘nuevo_dir‘.
Ocultar lista de directorios
Puede ocurrir que al abrir una determinada ruta en el explorador se muestre la estructura de directorios en ella (en ausencia de un archivo index.html). Por razones de seguridad, se considera una buena idea restringir esto. Para que esto suceda, sólo tiene que agregar una sola línea a su archivo .htaccess.
Options –Indexes
Al hacerlo, se muestra una página Prohibida al intentar ver la estructura de directorios.
RESUMEN
Un archivo .htaccess (acceso de hipertexto), en términos simples, se utiliza para aumentar el control de un sitio web, permitiendo entre muchos otros usos, restringir accesos y redireccionar directorios.
Ten en cuenta que los consejos y trucos mencionados anteriormente solo muestran una pequeña vista previa de la amplia gama de funciones a las que pueden aplicarse los archivos .htaccess al configurar páginas web. El servidor sigue todos los comandos inmediatamente y no es necesario reiniciar.
Esperamos que este post te ayude a comenzar con .htaccess y te sirva como un punto de inicio para hacer algo mucho más interesante con .htacess.