A maneira correta de fazer isso é mover os arquivos para fora do seu documento raiz - você é apenas uma falha na configuração do vazamento de dados, que nunca é Um lugar divertido para estar. Veja qualquer estrutura de aplicativo da Web moderna para um exemplo e execução.
No entanto, para fazer isso no Apache, basta usar uma diretiva LocationMatch
no contexto apropriado:
<LocationMatch \.sh$>
order deny,allow
deny from all
</Location>