Apache web sunucusunda `.htaccess` dosyası, bir dizine özel yapılandırma kuralları eklemek için kullanılabilir. Bu kurallar çeşitli işlevleri yerine getirebilir; örneğin, kimlik doğrulama gereksinimleri belirlemek, URL yeniden yazma kuralları oluşturmak veya belirli dosya türlerine erişim izinlerini yönetmek gibi. Dosya izinlerini yönetmek için `.htaccess` dosyasında çeşitli direktifler kullanabilirsiniz. İşte birkaç örnek:
1. **Dosyaları Listelemeyi Engelleme (`Options -Indexes`):** Bu komut, dizindeki dosyaların listelenmesini engeller eğer 'index' (örneğin index.html veya index.php) adında bir dosya yoksa. ``` Options -Indexes ``` 2. **Belirli Dosya Tiplerine Erişimi Engelleme:** `Files` veya `FilesMatch` direktifleri ile belirli dosya tiplerinin veya isimlerinin erişimini engelleyebilirsiniz. Örneğin, `.htaccess` dosyasının kendisine erişimi engellemek için: ``` <Files ".htaccess"> Require all denied </Files> ``` veya tüm `.config` dosyalarını engellemek için: ``` <FilesMatch "\.config$"> Require all denied </FilesMatch> ``` 3. **IP Adresine Göre Erişim Kontrolü:** Bireysel IP adreslerine veya IP aralıklarına erişimi sınırlamak için `Require` direktifini kullanabilirsiniz. Belirli bir IP'ye izin vermek ve diğerlerini engellemek için: ``` Require ip 192.168.1.100 ``` veya tam tersi, belirli bir IP'yi engelleyip diğerlerine izin vermek için: ``` Require all granted Require not ip 192.168.1.100 ``` 4. **Kimlik Doğrulama ile Dosya Erişimini Korumak:** HTTP temel kimlik doğrulamasını yapılandırarak belirli dosya ve dizinlere erişimi kontrol edebilirsiniz. Önce bir `.htpasswd` dosyası oluşturmanız ve şifreleri saklamanız gerekecek; ardından `.htaccess` dosyasında şu şekilde yapılandırabilirsiniz: ``` AuthType Basic AuthName "Restricted Area" AuthUserFile /path/to/your/.htpasswd Require valid-user ```
Yukarıdaki örnekler temel `.htaccess` izin kurallarından bazılarını göstermektedir. Daima Apache dökümantasyonuna ve güvenlikle ilgili en iyi uygulamalara başvurmalı ve yapılandırmalarınızı canlı bir ortama taşımadan önce yerel veya geliştirme ortamında test etmelisiniz.