¿Cómo puedo controlar mis índices de directorio con un archivo .htaccess?

Creando un archivo .htaccess en tu servidor web de DreamHost

Visita el siguiente artículo para obtener instrucciones sobre cómo crear un archivo .htaccess en tu servidor web:

Si el archivo ya existe, visita los siguientes artículos para obtener instrucciones sobre cómo actualizarlo (dependiendo de si estás utilizando un cliente FTP o SSH):

¿Qué es la indexación de directorios?

La indexación de directorios le permite a los visitantes ver una lista de archivos en lugar de la página web como tal. Cuando se habilita la indexación de directorios, los visitantes pueden mirar dentro de cualquier directorio que no tenga un archivo index.html (o index.php, etc.) en él y examinar el contenido del directorio. Lo más probable es que este no sea el comportamiento que deseas, especialmente si dicho directorio contiene algo así como archivos de configuración de script que podrían representar un riesgo para la seguridad.

La indexación de directorios está habilitada de forma predeterminada en DreamHost. Esto te permite controlar mejor qué archivos controlan su sitio cuando se visitan.

Desactivando índices de directorios

Coloca la siguiente línea en un archivo .htaccess en la carpeta de tu dominio para deshabilitar los índices de directorio en todo tu sitio:

Options -Indexes

Ahora, si alguien intenta visitar el contenido de cualquier directorio de tu sitio, obtendrán un error 403 (Prohibido).

Si un subdirectorio contiene un archivo de índice (como index.html), ese directorio aún va a ser cargado. Esta opción solo deshabilita directorios sin archivos de índice.

Activar índices de directorios para ciertas carpetas en específico

Si hay un directorio en particular en tu sitio que quieres que la gente pueda navegar, simplemente crea un nuevo archivo .htaccess en esa carpeta en particular. Agrega lo siguiente:

Options +Indexes

Esto anula la configuración "global" y permite a los usuarios ver el contenido de ese directorio.

Archivos de índice alternativos

Cuando un visitante accede a tu sitio web, el servidor busca en la carpeta un archivo de índice. Algunos ejemplos de archivos de índice comunes son:

  • index.htm
  • index.html
  • index.php
  • index.cgi
  • index.pl

Los archivos de índice admitidos dependen de la configuración del servidor. Los servidores de DreamHost están configurados para:

DirectoryIndex index.html index.shtml index.htm Index.html Index.htm Index.shtml default.htm Default.htm default.html Default.html default.shtml Default.shtml page1.html index.pl index.cgi index.php index.php3 index.phtml home.htm home.html home.shtml index.wml index.pcgi quickstart.html
  • Mientras nombre tu archivo de "índice" con cualquiera de los anteriores, este se cargará automáticamente.
  • Cuando agregas un nuevo dominio/subdominio a tu cuenta, DreamHost crea un archivo quickstart.html por ti y lo coloca en tu directorio que se carga de manera predeterminada a menos que lo elimines o agregues tu propio archivo de índice.
  • Si tienes dos archivos con nombres de la lista anterior, Apache muestra el que aparece primero (por ejemplo, se mostrará index.html, incluso si tienes un archivo index.php en el mismo directorio).
  • Puedes cambiar tu propia configuración de DirectoryIndex para que sea lo que quieras con un archivo .htaccess. Si el servidor no puede encontrar un archivo de índice, este intenta mostrar un índice de todos los archivos dentro del directorio actual. Sin embargo, si esta opción está deshabilitada, el servidor va a mostrar un error 404 de prohibido.

Usando un archivo .htaccess, puedes cambiar el archivo de índice a cualquier otra cosa que no sea uno de los valores predeterminados de índice mencionados anteriormente. Para hacer esto, inserta la siguiente línea en un archivo .htaccess:

DirectoryIndex pagename.html

Cambia pagename.html por la página que deseas usar como archivo de índice. Luego, al visitar tu sitio, el archivo pagename.html es lo que muestra, no tu archivo index.html.

Si especificas algo como example.html para que sea el índice de directorio y no has subido este archivo en tu directorio web, Apache muestra una lista de todos los archivos, ya que no puede encontrar el que especificaste. Ten cuidado al colocar esta regla (o cualquier regla), ya que es recursiva.

Listado de directorios a prueba de fallos

Lo que ves a continuación permite que un archivo en específico cargue por dado el caso no haya un archivo de índice ya establecido:

Options -Indexes
DirectoryIndex index.php index.html /example.php

Cuando un visitante solicita un directorio, Apache busca index.php, luego index.html, y si no se encuentra ninguno, muestra /example.php.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.