Hace unos días me encontré esta pregunta en el foro de mi paisano carlosseo con la que ahora se me ocurrió hacer esta nueva entrada :).
Bien, muchas veces cuando empezamos a crear directorios dentro de nuestro servidor y no existe un archivo index (php,html,htm, etc..) que lo proteja, el contenido de ese directorio podrá ser visualizado desde cualquier navegador, por ejemplo: En WordPress cada que subes imágenes, vídeos o documentos se crean carpetas de forma predeterminada dentro de la ruta wp-content/uploads/año/mes, es decir; cualquier persona que sepa como funciona wordpress seguirá esa ruta y podrá visualizar y descargar el contenido de ellas.
Para evitar que esto pase debemos crear dentro de cada una de ellas un index con o sin contenido, pero como esas carpetas se crean conforme a la fecha en que estamos agregando archivos, se crean tantas que el ir metiendo index en cada una de ellas se vuelve una tarea muy pesada y cada ves nos dará mas flojera.
Para hacer esa tarea mas sencilla solo debemos agregar en nuestra carpeta raíz un archivo .htaccess con lo siguiente:
Options -Indexes
Esto provocará un error al intentar accesar a todas las subcarpetas mostrando un error :403 Forbidden

En caso de que ya tengamos un .htaccess solo agregamos esa linea al inicio. Para mostrar nuevamente los archivos colocamos un “+” así: Options +Indexes o simplemente borramos esa linea.
Si solo queremos aplicar esto en un directorio especifico, agregamos algo así a nuestro .htaccess
<Directory /www/public_html/contenidoprivado >
Options -Indexes
</Directory>
Donde /www/public_html/contenidoprivado es el directorio del cual no mostraremos su contenido.
Y así de fácil 🙂
Si tienen alguna duda pueden preguntarme dejando un comentario o puden visitar el manual de apache aquí


Tarde mi comentario, pero esto es lo bueno de internet, me encontré este dato que era justo lo que necesitaba para proteger los archivos que se alojan en “upload”. Gracias y saludos desde Chile!