Как отключить вывод списка каталогов (листинг) в Apache

Веб-сервер Apache может отображать содержимое каталогов для пользователей, если в них нет стандартного индексного файла (например, index.html). Этой функцией управляет модуль mod_autoindex. Когда функция отображения каталогов включена, если пользователь обращается к каталогу без индексного файла, он увидит список файлов и папок в этом каталоге.

вывод списка каталогов (листинг) apache

Обычные индексные файлы по умолчанию включают:index.html, index.htm, index.php и welcome.html. Они могут быть настроены в директиве DirectoryIndex в конфигурационном файле Apache.

Хотя листинг каталогов может быть полезен для открытого обмена файлами, он может случайно раскрыть конфиденциальные файлы или структуру каталогов сервера. Для повышения безопасности рекомендуется отключить эту функцию. В этом руководстве мы рассмотрим три основных метода, позволяющих добиться этого в Apache.

Отключение листинга каталогов Apache путем отключения модуля autoindex

Прямым способом является отключение модуля mod_autoindex. Обратите внимание, что это повлияет на все сайты, размещенные на сервере.

Запустите выбранное вами терминальное приложение.

Отключите модуль autoindex для Apache.

  • Дистрибутивы с поддержкой a2dismod могут просто выполнить приведенную выше команду без необходимости вручную отключать необходимые модули.
  • Директива LoadModule для соответствующего модуля autoindex должна быть отключена вручную путем удаления или комментирования (добавлением # в начале) строки в конфигурационном файле.
Опции Debian, Ubuntu openSUSE и SLES Fedora Core, CentOS, RHEL macOS homebrew xampp
Поддержка a2dismod Да Да нет нет нет нет
Модули для деинсталляции отсутствует
Имя модуля н/а autoindex
Директива Loadmodule н/а #LoadModule autoindex_module <module_locations>/mod_autoindex.so

Перезапустите Apache, чтобы изменения вступили в силу.

Запрет листинга каталогов Apache с помощью директивы Directory's Options

Вы можете специально запретить листинг каталогов, добавив -Indexes к директиве Options в конфигурационном файле Apache.

Откройте файл конфигурации Apache с помощью удобного для вас текстового редактора.

Конфигурация может быть задана глобально или из конфигурации VirtualHost.

Расположение файлов конфигурации Apache VirtualHost

Найдите строку Options в блоке Directory.

Удалите опцию Indexes или добавьте -Indexes к директиве Options.

Обратите внимание, что это -Indexes, а не +Indexes

Сохраните и выйдите из редактора.

Перезапустите службу Apache, чтобы применить изменения.

Отключите листинг каталогов Apache с помощью .htaccess

Если у вас нет прав root или вы предпочитаете контролировать листинг каталогов для определенных директорий, воспользуйтесь файлом .htaccess:

Перейдите в каталог, в котором вы хотите отключить вывод списка каталогов.

Откройте или создайте файл .htaccess в каталоге, используя предпочтительный текст

Добавьте директиву -Indexes к директиве Options в файле .htaccess.

Убедитесь, что конфигурация Apache позволяет использовать файлы .htaccess, проверив, что для директивы AllowOverride установлено значение All или, по крайней мере, Options для соответствующего каталога.

Сохраните и выйдите из редактора.

Перезапустите Apache, чтобы применить изменения.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий