Wyłącz listę katalogów na apache; ale dostęp do poszczególnych plików powinien być dozwolony

Nie chcę używać .htaccess. Jak zmienić atrybuty katalogu?

<VirtualHost *:80>
   ServerName abc.com
   DocumentRoot /usr/share/uploads
   <Directory " /usr/share/uploads">
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>
Author: Deepak, 2012-06-21

5 answers

Jeśli używasz Debiana/Ubuntu, po prostu przejdź do terminala i wpisz

sudo a2dismod autoindex
sudo service apache2 restart

Jeśli używasz Centos / Fedora, po prostu zrób:

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

I podobnie w innych systemach operacyjnych lub dystrybucjach...

To powinno wyłączyć moduł apache, który sprawia, że te fantazyjne (zwykle bezużyteczne i problem z bezpieczeństwem) listy katalogów. Ponadto, jako bonus, można zarobić trochę wydajności: -)

 49
Author: Natxet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-06 22:49:52

Naprawdę nie mogłem znaleźć bezpośredniej odpowiedzi w Internecie; nawet w dokumentacji apache. Wreszcie, możemy znaleźć rozwiązanie poprzez kilka iteracji; musimy użyć opcji i wartość nie powinna zawierać indeksów.

<Directory "/usr/share/uploads">
        Options Includes FollowSymLinks MultiViews
        AllowOverride None
         Order allow,deny
      Allow from all
   </Directory>
 22
Author: Deepak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-22 04:22:56

Rozwiązanie @Deepak nie działało dla mnie. Ten zrobił:

W głównej konfiguracji apace /zapraszamy do zapoznania się z naszą ofertą.conf wystarczy dodać:

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

I będzie działać dla wszystkich domen i subdomen. Bez .plik htaccess.

 2
Author: Jevgenij Dmitrijev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-14 12:09:43

Wszystko zrobione powyżej, ale informacje o katalogu wciąż się pojawiają? Jeśli używasz index.php, a nie indeks.html, Sprawdź:

<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>
 1
Author: json4rest,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-06 05:46:46

Najprostszym sposobem byłoby umieszczenie pustego indeksu.html (lub cokolwiek apache jest domyślnie skonfigurowany do dostarczania) wewnątrz tego katalogu. Nie jest to realne rozwiązanie, ale bardzo proste obejście. Użytkownik przeglądający ten katalog zobaczy po prostu pustą białą stronę.

DODATKOWO możesz użyć skryptu (np. index.php), który emuluje listę katalogów i pokazuje tylko niektóre specjalne pliki.

 -1
Author: fragmentedreality,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-21 11:17:34