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.