2012-01-07 23 views
7

Kullanıcı yetkisiz dizine erişmeye çalıştığında 404 (Bulunamadı) mesajı görüntülemek istiyorum. Yasak sayfa kullanmak istemiyorum. Aşağıdaki kodla denedim, ancak çalışmıyor..htaccess, yetkisiz klasör erişimine 404 (Bulunamadı) mesajına yönlendirilecek

RedirectMatch 404 ^/htaccess/.*$ 

Neyin yanlış gittiğine dair bir fikrin var mı? Eğer bir varsa

+0

Neden yasak sayfaları kullanmak istemiyorsunuz? – Dan

+0

@Dan Dizini görünmez yapmayı düşünüyorum. – rekire

+0

@rekire ya u r doğru. RedirectMatch 404 kullanarak her klasörü yenilmez yapabilirim ama her klasöre htaccess koymam gerekiyor. tüm çocuk dizinini etkileme yolu var mı? – Leon

cevap

11

deneyin ekleyerek

... senin htaccess dosyası

#if the URI starts with htaccess, return a 404 
RewriteRule ^htaccess/ - [R=404,L,NC] 

Düzenleme

örneğin sistem/fonksiyon, sistem/sınıf, aşağıdaki Bir çok klasör, bir RewriteCule veya birden fazla RewriteRules'de birden çok klasöre göre okunması daha kolay olduğundan aşağıdaki gibi bir RewriteCond kullanır.

RewriteCond %{REQUEST_URI} ^htaccess/ [NC,OR] 
RewriteCond %{REQUEST_URI} ^system/function/ [NC,OR] 
#just make sure the last rule does NOT have an OR 
RewriteCond %{REQUEST_URI} ^system/class/ [NC] 
RewriteRule . - [R=404,L,NC] 
+0

Klasörün tüm şubesi var, örneğin sistem/işlev, sistem/sınıf, kullanıcı bu klasöre uri tarafından erişmeyi deniyorsa, sadece 404 sayfasını göster. Her klasörde bir htaccess yazmam gerekiyor mu? – Leon

+0

@Leon bkz. Yukarıdaki düzenle –

+0

Bu gerçekten güzel bir çözümdür +1 – rekire

0

R = 404, geçerli bir R 'değeri değil 404 parçayı yinelenen olan, bu 300-399 aralığı içinde olması veya göz ardı edilecektir. Diğer kurallar tarafından engellenmeyen, normal olmayan bir URL'ye yönlendirmek daha iyidir, bu sizin hata belgenizi tetikleyecektir.

İlgili konular