Não há muita diferença entre <Files ~ "...">
ou <FilesMatch "...">
(ou <Files "...">
neste contexto), pois todos eles correspondem apenas ao nome de base do arquivo, excluindo o caminho do diretório.
Portanto, se o nome de base dos arquivos for exclusivo nessa árvore de diretórios, você poderá simplesmente fazer:
<Files "file-to-allow.php">
Allow from all
</Files>
No entanto, isso corresponderá a file-to-allow.php
em qualquer lugar dentro dessa árvore de diretórios, se o mesmo nome base de arquivo ocorrer em vários diretórios.
Se você precisasse corresponder ao caminho completo do sistema de arquivos (ou, falando estritamente, o caminho da URL), sem usar um arquivo .htaccess
no subdiretório de destino e sem acesso à configuração do servidor (o que permitiria usar um <Directory>
container), então você poderia talvez fazer algo como o seguinte, com a ajuda de mod_setenvif:
SetEnvIf Request_URI "^/path/to/file-to-allow\.php$" letmein
Allow from env=letmein
A diretiva SetEnvIf
define a variável de ambiente letmein
se a Request_URI
corresponder à URL específica (regex). Isso é então usado na seguinte diretiva Allow
para somente permitir se a variável de ambiente estiver definida.