2010-05-18 6 views

cevap

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

Yüklendi bazı yaygın uzantılarla ihtiyacınız olanı ekleyin. Eğer gerçekten istiyorsan

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

FilesMatch ve Deny

EDIT'e üzerinde Apache belgelere bakın: artefacto bir good point yapar amaçlarınıza önemliyse, bu, 403 değil 404 dönecektir

11

404 (ve bir 403) kullanarak, mod_rewrite kullanabilirsiniz: RedirectMatch yönergesini kullanarak uzantıları dosyaya

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

üzgün - 403 kullanmam gereken budur. Soruyu 40x dedik. – Stevko

+0

RFC 2616'nın, bir kaynağa erişimin yasak olduğu durumlarda 404 yanıtı verdiğine dikkat edin (bkz. Bölüm 10.4.4). Yani orijinal sorunuz geçerliydi. – Artefacto

+2

Ayrıca "Yönlendirme 404", ref: [.htaccess 403 yerine 404 döndürmelidir.] (Http://stackoverflow.com/a/7945851/367456) ve "RedirectMatch 404", ref: [Make .git dizin web erişilemez] (http://stackoverflow.com/a/17916515/367456) - sadece burada biraz kümeleme. – hakre

2

Ayrıca inkar edemez erişimi: Bu irade

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

.php veya .html veya ile biten herhangi bir uri isterse, istemciler için 403 yasak hatasını döndürür. | numaralı çubuğu kullanarak desene daha fazla uzantı ekleyebilirsiniz.

0

İkisi de @Chris Lawlor's ve @ starkeen'in yanıtlarını beğenirim ve OP "40x" hakkında sorduğundan beri, dosyaların varlığını vermediğinden 404 hatasına yönlendirmeyi önereceğim.

Bu şu anda benim projelerden biri de kullanıyorum budur:

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