Ative mod_rewrite e AllowOverride em / secret. Então crie o .htaccess:
RewriteEngine On
RewriteBase /secret
RewriteRule ^$ - [R=404,L]
Desativei as listagens de diretório, como assim ...
Options -Indexes
Quando tento acessar um diretório como este: -
www.example.com/secret/
Eu recebo uma resposta 403 Proibida .
No entanto, quero uma resposta 404 Not Found , para que os hackers não consigam adivinhar minha estrutura de diretórios com tanta facilidade. Como eu faria isso?
Eu procurei na internet por uma resposta para um problema semelhante. Embora o mod_rewrite seja uma solução possível, acho que a melhor solução usa a diretiva "RedirectMatch".
Veja StackOverflow: problema ao redirecionar 403 proibido para 404 não encontrado
Crie um script 403 personalizado que retorne um erro 404.
Por exemplo, no PHP:
<?php
header("HTTP/1.0 404 Not Found");
die("<h1>404 Not Found</h1>");
?>
Agora configure o Apache para usar este script para resultados 403:
ErrorDocument 403 /403.php
Não mexa nas reescritas e funciona instantaneamente para todo o servidor.
Minha solução para parar de exibir o conteúdo do diretório como lista e exibir erro 404 é simples. Crie o arquivo .htaccess no diretório raiz do seu projeto e escreva quais diretórios devem ser protegidos.
Estrutura de diretórios
- your_root_directory
- .htaccess
- 404.html
- index.html
- app
- other files I do not want to show
- models
- other files I do not want to show
.htaccess
RewriteEngine On
RewriteRule ^app/ - [R=404,L]
RewriteRule ^models/ - [R=404,L]
ErrorDocument 404 /your_root_directory/404.html
A segunda linha do .htaccess não permite acesso a itens de lista no diretório do aplicativo e a todos os seus sub-diretórios.
A terceira linha do .htaccess não permite acesso a itens de lista no diretório de modelos e a todos os seus sub-diretórios.
O quarto da linha .htaccess define nosso próprio erro 404 (se você não quiser mostrar o erro padrão do apache).
Lembre-se de limpar o cache do seu navegador quando você trabalha com o htaccess.
Use o .htaccess para mascarar erros. Veja este guia: