Necesito hacer una operación un poco extraña.
Primero, ejecuto en Debian, apache2 (que 'se ejecuta' como usuario www-data)
Entonces, tengo un archivo de texto simple con .txt ot .ini, o cualquier extensión, no importa.
Estos archivos se encuentran en subcarpetas con una estructura como esta:
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
por lo tanto, el nombre del archivo siempre es el mismo, lo mismo para la 'jerarquía', solo cambie el nombre de la carpeta: /folder-name-static/folder-name-dinamyc/file-name-static.txt
Lo que debería hacer es (creo) relativamente simple: debo poder leer ese archivo por programas en el servidor (python, php, por ejemplo), pero si trato de recuperar el contenido del archivo por broswer (digitando la url www. example.com/folder1/car/foobar.txt, o vía cUrl, etc.) Debo obtener un error prohibido, o lo que sea, pero no acceder al archivo .
También sería bueno que incluso el acceso a esos archivos a través de FTP estén 'ocultos', o de todos modos no se puedan descargar (al menos eso uso con la raíz ftp y los datos del usuario)
¿Como lo puedo hacer?
Encontré esto en línea, se puso en el archivo .htaccess:
<Files File.txt>
Order allow, deny
Deny from all
</ Files>
Parece funcionar, pero solo si el archivo está en la raíz web (www.example.com / myfile.txt), y no en subcarpetas. Además, las carpetas en el segundo nivel (www.example.com/folder1/ fruit /foobar.txt) se crearán dinámicamente. Me gustaría evitar tener que cambiar el archivo .htaccess de vez en cuando.
Es posible crear una regla, algo así, que se aplica a todos los archivos con nombre, que está en * www.example.com / folder-name-static / * folder-name-dinamyc / *** file-name -static.txt *, donde esas partes son siempre iguales , solo ** ¿ese cambio ?
EDITAR :
Como dijo Dave Drager, podría ejemplificar esto manteniendo esos archivos fuera del directorio web accesible. Pero esos directorios también contendrán otros archivos, imágenes y cosas utilizadas por mis usuarios, así que simplemente trato de no tener un sistema de carpetas duplicadas, como:
/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