Как отключить просмотр каталогов?

Я хочу отключить просмотр каталогов папки / galerias и всех подкаталогов

индекс /galerias/409

* Parent Directory
* i1269372986681.jpg
* i1269372986682.jpg
* i1269372988680.jpg

12 ответов


создать .htaccess файл со следующим:

Options -Indexes

лучший способ сделать это-отключить его с помощью веб-сервера apache2. В моем Ubuntu 14.X-открыть /etc/apache2/apache2.conf изменить с

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

до

<Directory /var/www/>
        Options FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

затем перезапустите apache:

sudo service apache2 restart

это отключит список каталогов из всех папок, которые обслуживает apache2.


изменить/создать внутри /galerias С этого:

Options -Indexes

просмотр каталога обеспечивается mod_autoindex модуль.


помимо указанных двух методов (edit / etc/apache2 / apache2.conf или добавить Параметры -Индексы in .htaccess file), вот еще один

a2dismod autoindex

после этого перезапустите сервер apache2

sudo service apache2 restart

вы можете разместить пустой файл с именем index.html в каждый каталог, который вы не хотите перечислять. Это имеет несколько преимуществ:

  • (обычно) требует нулевой конфигурации на сервере.
  • он будет продолжать работать, даже если администратор сервера решит использовать "AllowOverride None" в конфигурации сервера. (Если вы используете .htaccess файлы, это может привести к множеству сообщений "Ошибка 500-внутренняя ошибка сервера" для ваших пользователей!).
  • он также позволяет перемещать файлы с одного сервера на другой, снова без необходимости возиться с конфигурацией apache.

теоретически, автоиндексация может быть вызвана другим файлом (это контролируется DirectoryIndex вариант), но мне еще предстоит столкнуться с этим в реальном мире.


одна из важных вещей заключается в настройке безопасного веб-сервера apache, чтобы отключить просмотр каталогов. По умолчанию apache поставляется с этой функцией включен, но это всегда хорошая идея, чтобы получить его отключен, если вам это действительно нужно. Откройте файл httpd.conf файл в папке apache и найти строку, которая выглядит следующим образом:

Options Includes Indexes FollowSymLinks MultiViews

затем удалите индексы word и сохраните файл. перезапустить Apache. Вот оно!--2-->


Это не ответ, просто мой опыт:

на моем Ubuntu 12.04 apache2, не нашел Indexes в apache2 не.conf или httpd.conf, к счастью, я нашел его в sites-available/default. После его удаления, теперь он не видит каталогов. Возможно, придется сделать это для sites-available/default-ssl.


Если вы решите изменить свой httpd.conf файл, чтобы решить эту проблему, и у вас есть несколько директив параметров, то вы должны добавить - или + перед каждой директивой. Пример:

Параметры -Индексы +FollowSymLinks


Открыть Свой .htaccess файл и введите следующий код в

Options -Indexes

убедитесь, что вы нажали клавишу ENTER (или клавишу RETURN, если вы используете Mac) после ввода слов "параметры-индексы", чтобы файл заканчивался пустой строкой.


чтобы завершить ответ @GauravKachhadiya:

IndexIgnore *.jpg

означает "скрывать только .формат JPG файлы расширений из индексирования.

директива IndexIgnore использует подстановочное выражение для сопоставления с каталогами и файлами.

  • символ звезды, он соответствует любым символам в строке, например: foo или foo.расширение, в следующем примере мы собираемся отключить список каталогов, никакие файлы или dirs не будут отображаться в индексе :

    IndexIgnore *

или если вы хотите скрыть пространственные файлы в списке каталогов, мы можем использовать

IndexIgnore *.php

*.в PHP => соответствует строке, которая начинается с любого символа и заканчивается .в PHP

приведенный выше пример, скрывает все файлы, которые заканчиваются .в PHP


попробуйте это в ваш код:

IndexIgnore *

попробуем .htaccess:

IndexIgnore *.jpg