apache - ocultar - denegar listado de directorio con htaccess
htaccess ocultar directorio (8)
De acuerdo en que
Options -Indexes
debería funcionar si el servidor principal está configurado para permitir reemplazos de opción, pero si no, esto ocultará todos los archivos del listado (para que cada directorio aparezca vacío):
IndexIgnore *
Tengo una carpeta, por ejemplo: /public_html/Davood/
y demasiadas subcarpetas en la carpeta, por ejemplo: /public_html/Davood/Test1/
, /public_html/Davood/Test1/Test/
, /public_html/Davood/Test2/
, ...
Quiero agregar un archivo htaccess a /public_html/Davood/
Para denegar DirectoryListing en /Davood
y Sub carpetas, ¿es posible?
Hay dos maneras :
usando .htaccess:
Options -Indexes
crear un índice en blanco.html
Intente agregar esto al archivo .htaccess
en ese directorio.
Options -Indexes
This tiene más información.
Para mostrar el error Prohibido, incluya estas líneas en su archivo .htaccess:
Options -Indexes
Si queremos indexar nuestros archivos y mostrarlos con cierta información, entonces use:
IndexOptions -FancyIndexing
Si queremos que una extensión particular no se muestre, entonces:
IndexIgnore *.zip *.css
Si Options -Indexes
no funciona como sugirió Bryan Drewery, podría escribir un método recursivo para crear archivos index.php en blanco.
Coloca esto dentro de la carpeta base que deseas proteger, puedes ponerle el nombre (recomendaría index.php)
<?php
recurse(".");
function recurse($path){
foreach(scandir($path) as $o){
if($o != "." && $o != ".."){
$full = $path . "/" . $o;
if(is_dir($full)){
if(!file_exists($full . "/index.php")){
file_put_contents($full . "/index.php", "");
}
recurse($full);
}
}
}
}
?>
Estos archivos index.php en blanco se pueden eliminar o sobrescribir fácilmente y evitarán que se pueda listar sus directorios.
Opciones -Indexes devuelve un error prohibido 403 para un directorio protegido. El mismo comportamiento se puede lograr mediante el uso de la siguiente redirección en htaccess:
RedirectMatch 403 ^/folder/?$
Esto devolverá un error prohibido para example.com/folder/ .
También puede usar mod-rewrite para prohibir una solicitud de carpeta.
RewriteEngine on
RewriteRule ^folder/?$ - [F]
Si su htaccess está en la carpeta que va a prohibir, cambie el patrón de RewriteRule de ^ folder /? $ A ^ $ .
Opciones: los índices deberían funcionar para evitar listados de directorios.
Si está utilizando un archivo .htaccess, asegúrese de tener al menos la configuración "allowoverride options" en su archivo de configuración principal de apache .
Options -Indexes
Debo intentar crear el archivo .htaccess en el directorio actual que quiero deshabilitar el listado del índice del directorio. Pero, lo siento, no sé de recursivo en el código .htaccess.
Intentalo.