Мне нужно сделать операцию немного странно.
Во-первых, я запускаю на Debian apache2 (который работает как пользовательские данные www)
Итак, у меня есть простой текстовый файл с расширением .txt ot .ini или любым другим, не имеет значения.
Эти файлы расположены в подпапках со структурой, подобной этой:
www.example.com/folder1/car/foobar.txt www.example.com/folder1/cycle/foobar.txt www.example.com/folder1/fish/foobar.txt www.example.com/folder1/fruit/foobar .текст
поэтому имя файла всегда одинаковое, то же самое для «иерархии», просто измените имя папки: /folder-name-static/folder-name-dinamyc/file-name-static.txt
То, что я должен сделать, - это (я думаю) относительно просто: я должен иметь возможность читать этот файл программами на сервере (например, python, php), но если я пытаюсь извлечь содержимое файла с помощью broswer (с помощью ввода URL www. example.com/folder1/car/foobar.txt или через cUrl и т. д.) Я должен получить запрещенную ошибку или что-то еще, но не получить доступ к файлу .
Также было бы неплохо, чтобы даже доступ к этим файлам по FTP был «скрытым», или, во всяком случае, его нельзя было загрузить (по крайней мере, я использую его с корнем ftp и данными пользователя)
Как я могу сделать?
Я нашел это в Интернете, поместите в файл .htaccess:
<Files File.txt>
Order allow, deny
Deny from all
</ Files>
Кажется, что это работает, но только если файл находится в корне сети (www.example.com / myfile.txt), а не в подпапках. Кроме того, папки второго уровня (www.example.com/folder1/ fruit /foobar.txt) будут создаваться динамически. Я бы хотел избежать необходимости время от времени изменять файл .htaccess.
Можно создать правило, подобное этому, для всех файлов с данным именем, которое находится на * www.example.com / folder-name-static / * folder-name-dinamyc / *** file-name -static.txt *, где эти части всегда одинаковы , только ** это одно изменение ?
РЕДАКТИРОВАТЬ :
Как сказал Дэйв Драгер, я мог бы проиллюстрировать это, оставив эти файлы вне каталога, доступного через Интернет. Но эти каталоги также будут содержать другие файлы, изображения и другие материалы, используемые моими пользователями, поэтому я просто стараюсь не иметь систему дубликатов папок, например:
/var/www/vhosts/example.com/httpdocs/folder1/car/[other folders and files here]
/var/www/vhosts/example.com/httpdocs/folder1/cycle/[other folders and files here]
/var/www/vhosts/example.com/httpdocs/folder1/fish/[other folders and files here]
//and, then for the 'secrets' files:
/folder1/data/car/foobar.txt
/folder1/data/cycle/foobar.txt
/folder1/data/fish/foobar.txt