2010-02-02 22 views
18

Ben .htaccess ile bir dosyaya erişimi devre dışı bırakmak mümkün, ama ben onlar .php yüzden can olan (doğrudan değil, gelen içerir) görülebilmesini.htaccess belirli dosyalara erişimi engelliyor mu? Birden fazla

birden fazla dosya izin vermeyecek şekilde nasıl bilmiyorum 't (demek yalnızca çevrimiçi öğreticiler gibi ..) bir dosya türünü devre dışı Örneğin

<FILES ... ? 

</FILES> 

Ya da bir şey .. 'home.php, file.php, test.php' nasıl üçü erişimi reddetmek yok bu etikete sahip dosyalar? veya benzer, lütfen yardım edin!

cevap

24

, sen FilesMatch komutlarını yerine Files, örneğin kullanabilirsiniz:

<FilesMatch ^((home|test|file)\.php$|mysecretfolder|asecretpicture\.jpe?g)$> 
... 
</FilesMatch> 
+0

Mükemmel, her dosya adı için boruları seviyorum, istediğim şeyi. Teşekkür ederim. –

+0

Uyarı: /test.php dosyasını hariç tutmak istiyorsanız /public.php veya /test.php.bak – Residuum

+1

Tüm hafta boyunca gördüğüm en yararlı şey budur. Verildi, Pazartesi günü saat 14:00 'dır, ama yine de. – Imperative

11

Eğer bu dosyaların tek tek dışlamak var gibi görünüyor:

<files home.php> 
Deny/Allow/Whatever 
</files> 
<files file.php> 
... 

Sen <files> veya something* içinde *.gif kullanabilirsiniz, ancak home.php, file.php'den ve test.php olarak gerçekten olamaz Bir "*" ile gruplandırılmış, bu muhtemelen gitmek için tek yoldur. Düzenli ifadeleri temel dosyaları hariç tutmak istiyorsanız

0

beri apache 2,4

<FilesMatch "\.htaccess|config\.php"> 

    Require all denied 

</FilesMatch> 

yerine

<FilesMatch "\.htaccess|config\.php"> 

    Order allow,deny 
    Deny from all 

</FilesMatch> 
İlgili konular