Errado, tudo muito errado! Esse é certamente o pior jeito possível de se fazer uma página de erros, por n motivos:
Não retorna um código de erro, ou seja, pra todos os efeitos é como se tivesse chegado na página desejada!
Em nenhum momento está sendo explicitamente dito para não listar mais os arquivos, ou seja, NÃO faz o que diz
Você precisa copiar e colar esse arquivo várias vezes, pra todos os diretórios que devem ser protegidos
E tem mais, mas não precisa. O jeito CERTO de se fazer isso é DESABILITAR o directory listing/autoindex e, se quiser uma página custom, configurar o seu servidor web pra enviar uma página 404 diferente.
1. Desabilitar directory listing/autoindex
No Apache, basta incluir a seguinte linha no seu .htaccess na raiz do site ou então na configuração do virtual host:
Options -Indexes
Se já tiver uma linha de Options, basta colocar a flag -Indexes no final (e remover caso ela esteja lá sem o -)
No Nginx, basta incluir a seguinte linha na configuração do site, preferencialmente no bloco mais externo possível (geralmente o bloco server, que abrange o site todo):
autoindex off;
2. Alterar a página de 404
No Apache, colocar a seguinte linha no .htaccess ou vhost:
ErrorDocument 403 /403.html
Mude o 404.html pra onde tiver seu HTML de erro.
No Nginx:
error_page 403 = /403.html;
Em ambos os casos, / é a raiz do site, e não do sistema de arquivos.
Do jeito CERTO, seu servidor vai responder de um jeito que o browser sabe que aquela página não existe, ainda vai ter a página personalizada, mas permite você controlar muito melhor o erro (você pode, por exemplo, fazer logs dos 403 e ver se alguém tá tentando invadir algo) e desabilita de verdade a listagem.