Мое решение прекратить отображать содержимое каталога в виде списка и отображать ошибку 404 просто. Создайте файл .htaccess в корневом каталоге вашего проекта и напишите, какие каталоги должны быть защищены.
Структура каталогов
- your_root_directory
- .htaccess
- 404.html
- index.html
- app
- other files I do not want to show
- models
- other files I do not want to show
.htaccess
RewriteEngine On
RewriteRule ^app/ - [R=404,L]
RewriteRule ^models/ - [R=404,L]
ErrorDocument 404 /your_root_directory/404.html
Вторая строка .htaccess запрещает доступ к элементам списка в каталоге приложения и всех его подкаталогах.
Третья строка .htaccess запрещает доступ к элементам списка в каталоге моделей и всех его подкаталогах.
Четвертая строка .htaccess устанавливает нашу собственную ошибку 404 (если вы не хотите показывать ошибку по умолчанию apache).
Не забудьте очистить кеш в вашем браузере при работе с htaccess.