Eu preciso fazer uma operação um pouco estranha.
Primeiro, eu corro no Debian, apache2 (que 'roda' como usuário www-data)
Então, eu tenho um arquivo de texto simples com .txt ou .ini, ou qualquer extensão, não importa.
Esses arquivos estão localizados em subpastas com uma estrutura 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
portanto, o nome do arquivo sempre o mesmo, idem para a 'hierarquia', basta alterar o nome da pasta: /folder-name-static/folder-name-dinamyc/file-name-static.txt
O que devo fazer é (acho) relativamente simples: devo ser capaz de ler esse arquivo por programas no servidor (python, php por exemplo), mas se eu tentar recuperar o conteúdo do arquivo por broswer (digitando a URL www. example.com/folder1/car/foobar.txt, ou via cUrl, etc.) Devo receber um erro proibido, ou qualquer outra coisa, mas não acessar o arquivo .
Também seria bom que mesmo acessar esses arquivos via FTP estivesse 'oculto' ou não pudesse ser baixado (pelo menos eu uso com a raiz ftp e os dados do usuário)
Como eu posso fazer?
Achei isso online, ser colocado no arquivo .htaccess:
<Files File.txt>
Order allow, deny
Deny from all
</ Files>
Parece funcionar, mas apenas se o arquivo estiver na raiz da web (www.example.com/myfile.txt) e não nas subpastas. Além disso, as pastas no segundo nível (www.example.com/folder1/ fruit /foobar.txt) serão criadas dinamicamente. Gostaria de evitar a necessidade de alterar o arquivo .htaccess de tempos em tempos.
É possível criar uma regra, algo assim, que se aplica a todos os arquivos com nome determinado, que está em * www.example.com / nome-da-pasta-estático / * nome-da-pasta-dinamyc / *** nome do arquivo -static.txt *, onde essas partes são sempre iguais , apenas ** essa mudança ?
EDIT :
Como Dave Drager disse, eu poderia simplificar isso mantendo esses arquivos fora do diretório acessível na web. Mas esses diretórios também conterão outros arquivos, imagens e outras coisas usadas pelos meus usuários, então simplesmente tento não ter um sistema de pastas 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