Привет всем. От этот nginx уже мозги закипают... На новом хостинге сделал всё, поднял виртуальные хосты, всё работает. Хочется немного странного.
А именно - защитить «служебные» папки сайта и файлы в них от просмотра посетителями, не нарушив функциональность сайта.
Поясню. Например, есть папка site/images/, в которой хранятся все изображения, применяющиеся в дизайне сайта.
Во-первых, если набрать site/images/real-name.jpg, то получим на экране real-name.jpg, чего не хотелось бы.
Во-вторых. Вот если набрать в адресной строке какую-нибудь фигню типа /site/ssfgrtdg, то выдаётся нормальная 404.php, со всеми картинками и т.п. Если же набрать имя одной из реально существующих папок, выдаётся та же 404.php, но чисто текстом, без стилей и картинок. Почему - непонятно.
Причём вообще происходит что-то странное. После ряда экспериментов с локейшеном /images/ сейчас по site/images выдаётся нормальная 404, хотя в данный момент всё в этой секции закомментировано. Я не знаю, может, rewrite permanent подейстовало, но факт остаётся фактом. Всё закомменчено, а 404 нормальная. Правда, прямой доступ к файлам в папке остался.
С прочими папками пока такая фигня, как описано выше - 404 без стилей и картинок.
В общем, вопрос. Как правильно решить эту задачу? Чтобы посетители не могли просматривать файлы, получая нормальную 404, и при этом сайт работал, сам получая файлы из /images? Заранее благодарен за ответы. If any...
PS Ещё одна дополнительная проблема. Когда набираем имя существующей папки и получаем вот эту текстовую 404, ссылки с неё работают в контексте этой папки. Т.е., например, набрали /site/files, получили кривую 404. Нажимаем на ней ссылку «на главную» и получаем не site/index.php, а site/files/index.php
Тоже хотелось бы устранить. Впрочем, логика подсказывает, что у этих двух проблем одно решение.