Установите IndexIgnore внутри httpd.conf

Я хочу предотвратить отображение списка файлов каталога во всех моих папках, поэтому, когда пользователь вводит http://example.com/thisDoesNotExists/, список файлов каталога не отображается.

Согласно учебнику все, что мне нужно сделать, это установить IndexIgnore *

Я пытаюсь установить его в httpd.conf, поэтому я

<IfModule mod_autoindex>
IndexIgnore *
</IfModule>

в нижней части httpd.conf.

Это не работает. Я получаю свой 404errorPage.html без каких-либо стилей.

Как я могу это исправить? Спасибо.

Отказ от ответственности: я пытаюсь установить это в httpd.conf, а не htaccess, потому что «Вам следует полностью избегать использования файлов .htaccess, если у вас есть доступ к файлу конфигурации основного сервера httpd. Использование файлов .htaccess замедляет работу вашего http-сервера Apache. Любая директива, которую вы можете включить в файле .htaccess лучше установить в блоке каталогов, так как он будет иметь тот же эффект, но с большей производительностью». Согласно этому.


person slevin    schedule 26.09.2017    source источник
comment
Так http://example.com/thisDoesNotExists/ существует или нет? Непонятно, что именно вы пытаетесь сделать. Если вы хотите prevent directory file listing in all of my folders, как вы говорите, вы должны использовать Options -Indexes внутри директивы <Directory>.   -  person arco444    schedule 04.10.2017
comment
@arco444arco444 Нет, http://example.com/thisDoesNotExists/ не существует. Вот что я пытаюсь сделать. Когда вы не устанавливаете IndexIgnore в Apache и переходите по несуществующему URL-адресу, например example.com/asdrvd, вы можете увидеть в своем браузере каталоги и файлы сервера. При установке IndexIgnore браузер не отображает никаких каталогов или файлов, но страница, которую я установил в ErrorDocument 404 "/404errorPage.html". Но он отображает его без стилей (без CSS).   -  person slevin    schedule 04.10.2017
comment
@arco444 Итак, либо мне нужно изменить настройки в IndexIgnore для отображения 404errorPage.html со стилями (CSS), либо это невозможно сделать, поэтому я должен установить IndexIgnore для отображения сообщения без стиля.   -  person slevin    schedule 04.10.2017
comment
Я думаю, что у вас может быть какая-то странная конфигурация где-то. Если вы переходите по несуществующему URL-адресу, как вам может быть возвращен список файлов, если они не существуют? Это именно та ситуация, когда должна возвращаться ошибка 404. Вы проверили доступность связанной таблицы стилей на странице 404? Например, он использует относительные пути? Скорее всего проблема в этом. IndexIgnore используется для предотвращения появления определенных файлов на странице списка каталогов, не позволяя отображать страницу с ошибкой.   -  person arco444    schedule 04.10.2017


Ответы (2)


Ваш аргумент <IfModule> неверен, поэтому прилагаемая директива никогда не оценивается. Аргументом должно быть либо имя модуля (это можно увидеть в соответствующем LoadModule), либо имя основного исходного файла.

И "autoindex_module", и "mod_autoindex.c" работают.

person covener    schedule 30.09.2017
comment
LoadModule это LoadModule autoindex_module modules/mod_autoindex.so, и я раскомментировал его. Я также пробовал <IfModule mod_autoindex.c> и <IfModule autoindex_module>, и ничего не изменилось. Может я не понял что делать. Можете ли вы объяснить еще раз, пожалуйста? Спасибо - person slevin; 30.09.2017

Вот еще один способ сделать это:

Вы должны отредактировать /etc/httpd/conf/httpd.conf, найти блок кода с

<Directory "/var/www/html">
    Options Index FollowSymLinks
</Directory>

Вы должны удалить там Index, а затем перезапустить службу httpd с помощью

sudo service httpd restart
person user1506104    schedule 06.10.2017