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

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

Индекс / Галерея /409

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

14 ответов

Решение

Создайте файл.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.

Помимо вышеупомянутых двух методов (отредактируйте /etc/apache2/apache2.conf или добавьте опцию -Indexes в файл.htaccess), вот еще один

a2dismod autoindex

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

sudo service apache2 restart

Редактировать / Создать .htaccess файл внутри /galerias с этим:

Options -Indexes

Просмотр каталогов осуществляется модулем mod_autoindex.

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

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

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

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

Options Includes Indexes FollowSymLinks MultiViews

затем удалите словарные индексы и сохраните файл. Перезапустите Apache. это оно

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

Опции -Indexes +FollowSymLinks

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

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

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

IndexIgnore *.jpg

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

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

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

    IndexIgnore *

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

IndexIgnore *.php

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

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

Попробуйте это в своем коде:

IndexIgnore *

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

Options -Indexes

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

В разделе каталога ( /etc/httpd/httpd.conf)

Удалить строку - Options Indexes FollowSymLinks

Новая линия - Options FollowSymLinks

Я нашел другой способ сделать это с виртуальными хостами:

      <VirtualHost *:80>
    DocumentRoot C:/WAMP/Apache24/htdocs/
    ServerName vehiclesspares.com
    <Directory C:/WAMP/Apache24/htdocs/vehiclesspares.com>
        Options FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>    
</VirtualHost>

Это работало для меня на Apache 2.4.54 на моем локальном компьютере с Windows с файлом хоста (C:\Windows\System32\drivers\etc\hosts), содержащим строку: 127.0.0.1 carspares.com В этой конфигурации также был carspares.com под docroot: C:\WAMP\Apache24\htdocs\vehiclesspares.com

Попробуйте это в .htaccess:

IndexIgnore *.jpg
Другие вопросы по тегам