Мені потрібно зробити операцію трохи дивно.
По-перше, я запускаю 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 .txt
отже, ім'я файлу завжди однакове, ditto для 'ієрархії', просто змініть ім’я папки: /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/ фрукт / 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