Esto incluso funciona en un <Directory> o <Location> en un archivo .conf real
chrismarx
1
@chrismarx ¿en qué archivo .conf lo pondría? .htaccess no parece estar habilitado en mi servidor, y he leído que es mejor no usarlo de todos modos. Sin embargo, tengo acceso a todos los archivos del servidor, ya que es un vps.
Charles John Thompson III
1
Estoy atascado en esta misma pregunta, agregué el archivo .htaccess con el código al mismo directorio que mi página web, pero todavía me está dando una alerta de navegación de directorio. ¿Estoy haciendo algo mal?
Randy Gilman
10
Tenga en cuenta que .htaccesspodría estar apagado. Por favor, consulte la AllowOverrideDirectiva. Si está configurado en None, entonces .htaccessestá apagado. Puede encenderlo configurando AllowOverride All. Para ser más precisos, Allsignifica todas las directivas de Apache.
Julian
2
Si tienes control de http.conf, mejor hazlo allí. Hay un éxito de rendimiento con htaccess
Itay Moav -Malimovka
298
La mejor manera de hacerlo es deshabilitarlo con el servidor web apache2. En mi Ubuntu 14.X - abra el /etc/apache2/apache2.confcambio de
@ Jay También probé "Opciones-índices" pero Apache no comenzó después. Estoy ejecutando la versión del servidor: Apache / 2.4.18 (Ubuntu). Sin embargo, el uso de "Opciones FollowSymLinks" funcionó según la respuesta de Dung. Tengo curiosidad por saber qué versión de Apache y sistema operativo está ejecutando. Tal vez es una cosa de versión?
MikeyE
@Jay @MikeyE Lo mismo aquí; Apache no volvería a cargar usando-Indexes
Crimbo
1
@Jay @MikeyE Apache parece recargarse / reiniciarse si se eliminaFollowSymLinks
Crimbo
2
Ejecutar apachectl configtestdespués de agregar Options -Indexes FollowSymLinksa httpd.conf escupe el siguiente error: "O todas las opciones deben comenzar con + o -, o ninguna opción puede". Por lo tanto, lo que funcionará esOptions -Indexes +FollowSymLinks
John T.
45
Además de los dos métodos mencionados anteriormente (edite /etc/apache2/apache2.conf o agregue Options -Indexes en el archivo .htaccess), aquí hay otro.
-Los índices en el directorio raíz no funcionan, en apache2.4.33, tuve que usar la respuesta de @Sarvar Nishonboyev
Felipe Valdes
1
@FelipeValdes Lea atentamente tanto la pregunta como mi respuesta. No estamos hablando del directorio raíz sino de un subdirectorio y se ha solicitado que sea factible en un .htaccessarchivo (que no es la forma más eficiente pero a menudo es la única opción en cuentas de alojamiento compartido o con administradores de sistemas ocupados).
Álvaro González
23
Puede colocar un archivo vacío llamado index.htmlen cada directorio que no desea enumerar. Esto tiene varias ventajas:
(Generalmente) requiere una configuración cero en el servidor.
Seguirá funcionando, incluso si el administrador del servidor decide usar "AllowOverride None" en la configuración del servidor. (¡Si usa .htaccessarchivos, esto puede generar muchos mensajes de "Error 500 - error interno del servidor" para sus usuarios!).
También le permite mover sus archivos de un servidor a otro, de nuevo sin tener que meterse con la configuración de Apache.
Teóricamente, la autoindexación podría ser activada por un archivo diferente (esto está controlado por la DirectoryIndexopción), pero todavía tengo que encontrar esto en el mundo real.
¡Aviso! Esto solo puede funcionar con la Directiva DirectoryIndexindex.html definida principalmente .
nyedidikeke
18
Una de las cosas importantes es configurar un servidor web apache seguro es deshabilitar la exploración de directorios. De forma predeterminada, apache viene con esta función habilitada, pero siempre es una buena idea deshabilitarla a menos que realmente la necesite. Abra el archivo httpd.conf en la carpeta apache y busque la línea que se ve de la siguiente manera:
Options Includes Indexes FollowSymLinks MultiViews
luego elimine los índices de palabras y guarde el archivo. Reiniciar apache. Eso es
Perfecto. Desactívelo en toda la máquina. ¿Por qué estaría habilitado esto de forma predeterminada? No tengo idea ...
eduncan911
1
Esto funcionó para mí en Ubuntu (apache2.conf) pero .htaccess Options -Indexes no.
Danniel Little
Esto funcionó para mí en Ubuntu (/etc/apache2/apache2.conf) pero .htaccess Options -Indexes no lo hizo.
user2875289
5
Si elige modificar su archivo httpd.conf para resolver esto y tiene múltiples directivas de Opciones, entonces debe agregar un - o un + antes de cada directiva. Ejemplo:
En mi Ubuntu 12.04 apache2, no encontré Indexesen apache2.conf o httpd.conf, por suerte lo encontré sites-available/default. Después de eliminarlo, ahora no ve el listado del directorio. Puede que tenga que hacerlo por sites-available/default-ssl.
Abra su archivo .htaccess e ingrese el siguiente código en
Options -Indexes
Asegúrese de presionar la tecla ENTER (o la tecla RETURN si usa una Mac) después de ingresar las palabras "Opciones-Índices" para que el archivo termine con una línea en blanco.
Para completar la respuesta de @ GauravKachhadiya:
IndexIgnore *.jpg
significa "ocultar solo los archivos de extensión .jpg de la indexación.
La directiva IndexIgnore usa la expresión comodín para hacer coincidir los directorios y archivos.
un carácter de estrella, coincide con cualquier carácter en una cadena, por ejemplo: foo o foo.extension, en el siguiente ejemplo, vamos a desactivar la lista del directorio, no aparecerán archivos o directorios en el índice:
IndexIgnore *
O si desea ocultar archivos espaciales, en el listado del directorio, entonces podemos usar
IndexIgnore *.php
* .php => coincide con una cadena que comienza con cualquier carácter y termina con .php
El ejemplo anterior oculta todos los archivos que terminan con .php
Respuestas:
Cree un archivo .htaccess que contenga la siguiente línea:
Esa es una opción. Otra opción es editar su archivo de configuración de apache.
Para hacerlo, primero debe abrirlo con el comando:
Luego encuentre la línea: Opciones Índices FollowSymLinks
Cambie esa línea a: Opciones FollowSymLinks
Por último, guarde y salga del archivo, y reinicie el servidor apache con este comando:
(Tienes una guía con capturas de pantalla aquí ).
fuente
.htaccess
podría estar apagado. Por favor, consulte laAllowOverride
Directiva. Si está configurado enNone
, entonces.htaccess
está apagado. Puede encenderlo configurandoAllowOverride All
. Para ser más precisos,All
significa todas las directivas de Apache.La mejor manera de hacerlo es deshabilitarlo con el servidor web apache2. En mi Ubuntu 14.X - abra el
/etc/apache2/apache2.conf
cambio dea
luego reinicie apache:
Esto deshabilitará la lista de directorios de todas las carpetas que apache2 sirve.
fuente
-Indexes
FollowSymLinks
apachectl configtest
después de agregarOptions -Indexes FollowSymLinks
a httpd.conf escupe el siguiente error: "O todas las opciones deben comenzar con + o -, o ninguna opción puede". Por lo tanto, lo que funcionará esOptions -Indexes +FollowSymLinks
Además de los dos métodos mencionados anteriormente (edite /etc/apache2/apache2.conf o agregue Options -Indexes en el archivo .htaccess), aquí hay otro.
Reinicie el servidor apache2 luego
fuente
a2dismod -f autoindex
para la ejecución de comandos sin bloqueo .Alias
carpetas y cualquier otra ruta servida por Apache.Editar / Crear un
.htaccess
archivo dentro/galerias
con esto:La exploración del directorio es proporcionada por el módulo mod_autoindex .
fuente
.htaccess
archivo (que no es la forma más eficiente pero a menudo es la única opción en cuentas de alojamiento compartido o con administradores de sistemas ocupados).Puede colocar un archivo vacío llamado
index.html
en cada directorio que no desea enumerar. Esto tiene varias ventajas:.htaccess
archivos, esto puede generar muchos mensajes de "Error 500 - error interno del servidor" para sus usuarios!).Teóricamente, la autoindexación podría ser activada por un archivo diferente (esto está controlado por la
DirectoryIndex
opción), pero todavía tengo que encontrar esto en el mundo real.fuente
index.html
definida principalmente .Una de las cosas importantes es configurar un servidor web apache seguro es deshabilitar la exploración de directorios. De forma predeterminada, apache viene con esta función habilitada, pero siempre es una buena idea deshabilitarla a menos que realmente la necesite. Abra el archivo httpd.conf en la carpeta apache y busque la línea que se ve de la siguiente manera:
luego elimine los índices de palabras y guarde el archivo. Reiniciar apache. Eso es
fuente
Si elige modificar su archivo httpd.conf para resolver esto y tiene múltiples directivas de Opciones, entonces debe agregar un - o un + antes de cada directiva. Ejemplo:
Opciones -Indexes + FollowSymLinks
fuente
Esta no es una respuesta, solo mi experiencia:
En mi Ubuntu 12.04 apache2, no encontré
Indexes
en apache2.conf o httpd.conf, por suerte lo encontrésites-available/default
. Después de eliminarlo, ahora no ve el listado del directorio. Puede que tenga que hacerlo porsites-available/default-ssl
.fuente
Abra su archivo .htaccess e ingrese el siguiente código en
Asegúrese de presionar la tecla ENTER (o la tecla RETURN si usa una Mac) después de ingresar las palabras "Opciones-Índices" para que el archivo termine con una línea en blanco.
fuente
Agregue esto en su archivo .htaccess:
Si no funciona por alguna razón, intente esto dentro de su archivo .htaccess:
fuente
Para completar la respuesta de @ GauravKachhadiya:
significa "ocultar solo los archivos de extensión .jpg de la indexación.
La directiva IndexIgnore usa la expresión comodín para hacer coincidir los directorios y archivos.
un carácter de estrella, coincide con cualquier carácter en una cadena, por ejemplo: foo o foo.extension, en el siguiente ejemplo, vamos a desactivar la lista del directorio, no aparecerán archivos o directorios en el índice:
IndexIgnore *
O si desea ocultar archivos espaciales, en el listado del directorio, entonces podemos usar
* .php => coincide con una cadena que comienza con cualquier carácter y termina con .php
El ejemplo anterior oculta todos los archivos que terminan con .php
fuente
Prueba esto en
.htaccess
:fuente