C’è un modo per forzare l’apache a restituire 404 anziché 403?

C’è un modo in cui posso configurare il server Web Apache per restituire un codice di errore 404 (non trovato) invece di 403 (vietato) per alcune directory specifiche a cui non posso accedere?

Ho trovato alcune soluzioni che suggeriscono l’uso di mod_rewrite, come ad es

RewriteEngine On RewriteRule ^.*$ /404 [L] 

Poiché lo scopo di inviare 404 anziché 403 è quello di offuscare la struttura della directory, questa soluzione è troppo rivelatrice, perché reindirizza in una posizione diversa, il che rende evidente che la directory originariamente accessibile effettivamente esiste.

RedirectMatch come in es

 RedirectMatch 404 ".*\/\..*" 

fa il trucco, proibisce l’accesso a tutti i file o le directory che iniziano con un punto, dando un errore “404 non trovato”.

Dal manuale di Apache: “La direttiva Redirect [Match] mappa un vecchio URL in uno nuovo chiedendo al client di recuperare la risorsa nella nuova posizione.” Per impostazione predefinita, Redirect invia un codice di ritorno 302, ma può anche restituire altri codici di stato come mostrato sopra.

Dopo aver avuto lo stesso problema, ho finito con il seguente file .htaccess

 Options -Indexes RewriteCond %{HTTP_HOST} ^(www\.)?mydomain.com [NC] RewriteRule ^(.*)/$ - [R=404,NC] 

La prima e la terza riga assicurano che non è ansible elencare il contenuto della cartella e se lo si fa si riceverà un errore 404. La direttiva RewriteCond garantisce che questa regola di riscrittura si applichi solo al dominio principale. Poiché ho diversi sottodomini, senza la riscrittura, l’accesso a http://www.mydomain.com/subdomain restituiva anche un 404, che non era quello che intendevo.

Puoi fare qualcosa del genere:

.htaccess

ErrorDocument 403 /error/404.php

404.php

  404 Error 

Per cambiare tutti gli errori 403.400 in 404 errori, mettilo alla fine di /etc/apache2/conf.d/localized-error-pages OR in un file .htaccess

 # Will raise a 404 error, because the file  doesn't exist. # We change 403 or 400 to 404 ! ErrorDocument 400 /fake_file_for_apache_404.php ErrorDocument 403 /fake_file_for_apache_404.php # We need to rewrite 404 error, else we will have "fake_file_for_apache_404.php not found" ErrorDocument 404 "404 Not Found

Not Found

The requested URL was not found on this server.

" ErrorDocument 500 "Server in update. Please comme back later."