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 ot .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', apenas mude o nome da pasta: /folder-name-static/folder-name-dinamyc/file-name-static.txt
O que devo fazer é (eu acho) relativamente simples: eu 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 o arquivo url www.example.com/folder1/car/foobar.txt, ou via cUrl, etc.) Devo receber um erro proibido, ou qualquer outra coisa, mas não acesse o arquivo .
Também seria legal que até mesmo o acesso a esses arquivos via FTP fosse 'oculto', ou de qualquer forma não pudesse ser baixado (pelo menos eu uso com a raiz do ftp e os dados do usuário)
Como posso fazer?
Encontrei isso online, seja 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 em subpastas.
Além disso, as pastas no segundo nível (www.example.com/folder1/fruit/foobar.txt) serão criadas dinamicamente. Eu gostaria de evitar ter que alterar o arquivo .htaccess de tempo.
É possível criar uma regra, algo assim, que seja válida para todos os arquivos com nome próprio, que está em * www.example.com / folder-name-static / * folder-name-dinamyc / *** file-name-static.txt *, onde essas partes são sempre as mesmas , apenas ** essa mudança ?
EDITAR :
Como Dave Drager disse, eu poderia semplificar isso mantendo os arquivos fora do diretório acessível da web.
Mas esses diretórios conterão outros arquivos também, imagens e coisas usadas pelos meus usuários, então eu 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