web-dev-qa-db-fra.com

Désactiver la liste des répertoires sur Apache; mais l'accès aux fichiers individuels devrait être autorisé

Je ne veux pas utiliser .htaccess. Comment dois-je changer mes attributs d'annuaire?

<VirtualHost *:80>
   ServerName abc.com
   DocumentRoot /usr/share/uploads
   <Directory " /usr/share/uploads">
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>
20
Deepak Singhal

Je n'ai vraiment pas pu trouver de réponse directe sur Internet; même sur la documentation Apache. Enfin, pourrait trouver la solution à travers quelques itérations; nous devons utiliser les options et la valeur ne doit PAS contenir d'index.

<Directory "/usr/share/uploads">
        Options Includes FollowSymLinks MultiViews
        AllowOverride None
         Order allow,deny
      Allow from all
   </Directory>
24
Deepak

Si vous utilisez Debian/Ubuntu, allez simplement dans le terminal et tapez

Sudo a2dismod autoindex
Sudo service Apache2 restart

Si vous utilisez Centos/Fedora, faites simplement:

mv /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/autoindex.bkp
/etc/init.d/httpd restart

Et de même dans d'autres OS ou distributions ...

Cela devrait désactiver le module Apache qui rend ces listes de répertoires fantaisistes (normalement inutiles et un problème de sécurité). De plus, en bonus, vous gagnez un peu de performance :-)

50
Natxet

La solution @Deepak n'a pas fonctionné pour moi. Celui-ci a fait:

Dans la configuration principale d'Apace /etc/Apache2/httpd.conf il suffit d'ajouter:

<Directory />
        Options FollowSymLinks
        AllowOverride All
</Directory>

Et cela fonctionnera pour vous tous les domaines et sous-domaines. Sans fichier .htaccess.

4
Jevgenij Dmitrijev

Tout est fait ci-dessus, mais les informations du répertoire sont toujours à venir? Si vous utilisez index.php, plutôt que index.html, vérifiez les points suivants:

<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>
1
json4rest