Seguramente la mayoría de ustedes han oído hablar del .htaccess aunque sea vagamente y algunos seguramente tendrán una idea de lo que se puede hacer con este. La intención de este tutorial es explicar en que consiste el .htaccess y mostrar algunas de las aplicaciones más interesantes que se le pueden dar. No solo se puede utilizar para implementar páginas de error personalizadas o proteger con clave ciertos directorios. De hecho, el archivo .htaccess puede utilizarse para mucho más.

Algunas ideas generales

El .htaccess es un simple archivo ASCII, como los que podemos crear a través de un editor de texto como NotePad. Muchas personas presentan alguna confusión con respecto al nombre del archivo, por lo cual vamos a brindar una pequeña explicación al respecto.

En realidad .htaccess es la extensión de archivo. No es archivo.htaccess o algunapagina.htaccess, simplemente se llama de esa manera.

Con el fin de crear un archivo .htaccess, debemos abrir un editor de texto y salvar una página vacía como .htaccess (tal vez debamos escribir un caracter ya que algunos editores no permiten salvar una página vacía). Es posible que el editor de texto añada su extensión de archivo por defecto al nombre (por ejemplo, Notepad podría nombrar al archivo .htaccess.txt). En tal caso es necesario remover la extensión de archivo .txt (u otra) con el fin de que el archivo sea un .htaccess válido.

El archivo debe subirse al servidor en modo ASCII, no binario. Así mismo los permisos CHMOD del archivo deben ser configurados a 644 o (RW-R–R–). Esto permite que el archivo sea utilizable por el servidor pero previene que sea leído por el navegador,lo cual podría comprometer seriamente la seguridad. Por ejemplo, si tenemos directorios protegidos por claves, si un navegador puede leer el archivo htaccess, es posible obtener la localización del archivo de autenticación y luego realizar ingeniería inversa de la lista para tener acceso total a cualquier parte que previamente habíamos protegido. Existen algunas formas de evitar esto, una es colocar los archivos de autenticación arriba del directorio raíz de tal forma que no sean accesibles a través de la Internet, y la otra es a través de una serie de comandos htaccess que previene que este sea accesado por un navegador.

La mayoría de los comandos en .htaccess están diseñados para colocarse en una sola línea, por lo tanto si utilizamos un editor de texto que utiliza word-wrap, es importante asegurarse de deshabilitar esta función ya que podría producir una serie de caracteres que afecten Apache, a pesar de que Apache suele ser bastante tolerante con contenido con formato incorrecto en el archivo .htaccess.

El htaccess es una aplicación de Apache, no de NT. Existen capacidades similares en servidores de NT, sin embargo en opinión de los expertos las habilidades de NT en estas áreas son deficientes en comparación con Apache.

Los archivos htaccess afectan el directorio en que están ubicados en todos los subdirectorios. Esto significa que un archivo htaccess localizado en el directorio raíz (misitio.com) afectará misitio.com/content, misitio.com/content/contents, etc. Es importante notar que esto puede ser prevenido (si por ejemplo, no queremos que ciertos comandos htaccess afecten un directorio específico) colocando un nuevo archivo htaccess dentro del directorio que no deseamos que sea afectado con ciertos cambios y removiendo los comandos específicos del nuevo archivo  htaccess para que no causen los efectos indeseados. En otras palabras, el archivo htaccess más cercano al directorio actual es tratado como el archivo htaccess. Si el htaccess más cercano es el htaccess global localizado en la raíz, entonces este afectará cada directorio en todo el sitio web.

Antes de que comiencen a colocar htaccess en todos los sitios posibles, es importante leer este tutorial para asegurarse de no hacer nada redundante, ya que es posible que ocasiones se produzca un bucle infinito de redirecciones o errores si se coloca algo raro en el htaccess.

Además, algunos sitios no permite el el uso de archivos htaccess, ya que dependiendo de lo que hagan, pueden causar la ralentización y sobrecarga de un servidor con dominios si todos usan archivos htaccess. Es importante asegurarse que nuestro servicio de alojamiento web permite el uso de archivos htaccess antes de emplearlos. Algunas cosas que el htaccess hace pueden comprometer la configuración del servidor.

Tutorial de htaccess

  1. ¿Cómo crear un archivo .htaccess?
  2. Documentos de error.
  3. Protección con clave del sitio web mediante htaccess.
  4. Bloqueo de usuarios por IP.
  5. Bloqueo de usuarios/sitios por referencia
  6. Habilitación de SSI a través de htaccess
  7. Redirecciones por medio de htaccess
  8. El bloqueo contra los robots malos y site rippers (también conocidos como navegadores offline).
  9. Cambio de la página de directorio por defecto por medio del htaccess.
  10. Adición de tipos MIME por medio de htaccess
  11. ¿Como prevenir que el archivo htaccess pueda ser visto?
  12. ¿Cómo evitar el hotlinking de imágenes y otros archivos por medio de htaccess?
  13. ¿Cómo prevenir el listado de directorios?
  14. Conclusiones e información adicional