2010-05-18 11 views

risposta

21
<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak)$"> 
Order Allow,Deny 
Deny from all 
</FilesMatch> 

Loaded con alcune estensioni comuni, aggiungi di più quando necessario.

4
<FilesMatch "\.ext$"> 
    Deny from all 
</FilesMatch> 

Vedere la documentazione Apache su FilesMatch e Deny

EDIT: Artefacto fa un good point, questo tornerà 403, non 404, se questo è importante per i vostri scopi

11

Se si vuole veramente un 404 (e non un 403), è possibile utilizzare mod_rewrite:

RewriteEngine on 
RewriteRule \.ext$ - [R=404] 
+0

dispiace - 403 è quello che dovrei usare. Ho modificato la domanda per dire 40x. – Stevko

+0

Si noti che RFC 2616 consente una risposta 404 quando l'accesso a una risorsa è vietato (vedere la sezione 10.4.4). Quindi la tua domanda originale era valida. – Artefacto

+2

C'è anche 'Redirect 404', ref: [Le richieste di .htaccess devono restituire 404 invece di 403] (http://stackoverflow.com/a/7945851/367456) e' RedirectMatch 404', ref: [Make .git directory web inaccessibile] (http://stackoverflow.com/a/17916515/367456) - solo un po 'di cluster qui. – hakre

2

Si può anche negare l'accesso a file estensioni utilizzando RedirectMatch direttiva:

RedirectMatch 403 ^/.+\.(php|html|gif)$ 

Questa volontà restituire un errore 403 vietato per i client se richiedono un uri che termina con .php o .html o .gif. È possibile aggiungere ulteriori estensioni al motivo utilizzando una barra |.

0

Mi piacciono sia le risposte di @Chris Lawlor's che di @ starkeen e dal momento che OP ha chiesto di "40x" suggerirò di reindirizzare a un errore 404 poiché non rivela il fatto che i file esistono.

Questo è quello che sto attualmente in uso in uno dei miei progetti:

# Hide files not concerning the user 
RedirectMatch 404 \.(htaccess|htpasswd|ini|log|sh|inc|bak|bkp|sql)$ 
Problemi correlati