Je dois faire une opération un peu étrange.
Tout d'abord, je fonctionne sous Debian, avec apache2 (qui "tourne" en tant qu'utilisateur www-data).
J'ai donc un simple fichier texte avec une extension .txt ou .ini, ou autre, peu importe.
Ces fichiers sont situés dans des sous-dossiers dont la structure est la suivante :
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
donc, le nom du fichier est toujours le même, idem pour la 'hiérarchie', il suffit de changer le nom du dossier : /nom-dossier-statique/nom-dossier-dinamyc/file-name-static.txt
Ce que je dois faire est (je pense) relativement simple : Je dois pouvoir lire ce fichier par des programmes sur le serveur (Python, php par exemple), mais si j'essaie de récupérer le contenu du fichier par broswer (en creusant l'url www.example.com/folder1/car/foobar.txt, ou via cUrl, etc.) je dois obtenir une erreur interdite, ou autre, mais ne pas accéder au fichier .
Ce serait également bien que même l'accès à ces fichiers via FTP soit "caché", ou de toute façon ne puisse pas être téléchargé (du moins ce que j'utilise avec la racine ftp et les données utilisateur).
Comment puis-je faire ?
J'ai trouvé ça en ligne, à mettre dans le fichier .htaccess :
<Files File.txt>
Order allow, deny
Deny from all
</ Files>
Cela semble fonctionner, mais uniquement si le fichier se trouve à la racine du site (www.example.com / monfichier.txt), et non dans des sous-dossiers. De plus, les dossiers du deuxième niveau (www.example.com/folder1/ fruit /foobar.txt) sera créé de manière dynamique J'aimerais éviter de devoir modifier le fichier .htaccess de temps en temps.
Il est possible de créer une règle, quelque chose comme ça, qui s'applique à tous les fichiers portant un nom donné, qui se trouve sur *www.example.com/folder-name-static/. *dossier-nom-dinamyc/***file-nom-static.txt*, où ces parties sont toujours les mêmes juste **cette modification ?
EDIT :
Comme Dave Drager l'a dit, je pourrais simplifier les choses en gardant ces fichiers en dehors du répertoire accessible par le web. Mais ces répertoires contiendront aussi d'autres fichiers, des images, et d'autres choses utilisées par mes utilisateurs, donc j'essaie simplement de ne pas avoir un système de dossiers en double, par exemple :
/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