.htaccess dosyası, Apache kullanan web sunucuları için güçlü bir yapılandırma aracıdır. Güvenlik ayarları da dahil olmak üzere web sitenizin çeşitli yönlerini kontrol etmenize olanak tanır. .htaccess dosyasının kritik kullanımlarından biri dosyalara ve dizinlere erişimi yönetmektir. Bu makale, IP adresi, kullanıcı kimlik doğrulaması ve dosya türleri gibi farklı ölçütlere göre dosyalara erişimi reddetmek veya erişime izin vermek için .htaccess kullanma sürecinde size yol gösterecektir.
.htaccess Kullanarak Erişimi Yönetme
.htaccess dosyası, erişimi kontrol etmek istediğiniz dizine yerleştirilir. Apache web sunucusu tarafından okunur ve genel ayarları geçersiz kılabilir. Aşağıda .htaccess kullanarak dosyalara erişimi yönetmenin çeşitli yöntemleri verilmiştir.
.htaccess’te <Files> Yönergesini Kullanmak
Bir .htaccess dosyasındaki <Files> yönergesi, kuralları belirli dosyalara uygulamak için kullanılır. Bu, dizinin tamamını etkilemeden belirli dosyalara erişimi kontrol etmek istediğinizde kullanışlıdır. Sözdizimi basittir:
<Files "filename"> directive1 directive2 ... </Files>
“Dosya adı”nı, korumak istediğiniz dosyanın adıyla değiştirin. <Dosyalar> bloğunun içine erişim kontrolleri veya kimlik doğrulama kuralları gibi herhangi bir yönergeyi ekleyebilirsiniz. Bu yöntem, dizinlerin tamamı yerine belirli dosyaları hedeflemek için aşağıdaki örneklerin her birine uygulanabilir.
- Belirli Dosyalara Erişimi Reddetme: Bu yöntem, web sitenizdeki belirli dosyalara erişimi engellemenizi sağlar. Hassas dosyaları korumak için kullanışlıdır.
<Files "secretfile.txt"> Order allow,deny Deny from all </Files>
Bu kod tüm kullanıcıların “secretfile.txt” dosyasına erişimini reddeder. Order izin ver, reddet yönergesi, İzin Ver ve Reddet yönergelerinin işlenme sırasını belirtir.
- IP Adresine Göre Erişimi Engelleme: Ziyaretçinin IP adresine göre web sitenize veya belirli dosyalara erişimi kısıtlayabilirsiniz.
Order deny,allow Deny from all Allow from 192.168.1.100
Bu kod, 192.168.1.100 IP adresinden gelenler dışındaki tüm kullanıcıların erişimini engeller. Daha fazla İzin Ver satırı ekleyerek birden fazla IP adresini listeleyebilirsiniz.
- Kullanıcı Kimlik Doğrulamasını Gerektirme: Belirli dosyaları veya dizinleri korumak için kullanıcıların kendi kimliklerini doğrulamasını zorunlu kılabilirsiniz.
AuthType Basic AuthName "Restricted Area" AuthUserFile /path/to/.htpasswd Require valid-user
Bu yöntem, kullanıcı adlarını ve parolaları içeren bir .htpasswd dosyası oluşturmanızı gerektirir. AuthType Basic yönergesi kimlik doğrulama türünü belirtir ve AuthUserFile yönergesi parola dosyasına işaret eder.
.htpasswd dosyasını oluşturmak için terminalinizde aşağıdaki komutları kullanın:
1. .htpasswd dosyasını oluşturmak istediğiniz dizine gidin veya tam yolu belirtin:
$ cd /path/to/directory
2. Dosyayı oluşturmak ve kullanıcı eklemek için htpasswd komutunu kullanın. Eğer htpasswd kurulu değilse, paket yöneticinizi kullanarak kurabilirsiniz (örneğin, Debian tabanlı sistemlerde # sudo apt-get install apache2-utils):
$ htpasswd -c .htpasswd username
-c bayrağı dosyayı oluşturur. Kullanıcının şifresini girmeniz ve onaylamanız istenecektir.
Mevcut .htpasswd dosyasına daha fazla kullanıcı eklemek için -c işaretini atlayın:
$ htpasswd .htpasswd newuser
Artık yukarıdaki konfigürasyona sahip .htaccess dosyasını uygun dizine yerleştirerek dosyalarınızı veya dizinlerinizi koruyabilirsiniz.
- Dosya Türlerine Erişimi Reddet: Ayrıca yapılandırma dosyaları veya komut dosyaları gibi belirli dosya türlerine erişimi de reddedebilirsiniz.
<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$"> Order allow,deny Deny from all </FilesMatch>
Bu kod, belirtilen uzantılara sahip herhangi bir dosyaya erişimi engeller. FilesMatch yönergesi, dosya türlerini eşleştirmek için normal ifadeler kullanmanıza olanak tanır.
- Belirli Yönlendirenlerin Erişimine İzin Verme: Yönlendiren URL’ye göre erişimi kısıtlayabilir, yalnızca isteğin belirli bir siteden gelmesi durumunda erişime izin verebilirsiniz.
SetEnvIf Referer "allowedsite.com" allowed_referrer Order Deny,Allow Deny from all Allow from env=allowed_referrer
Bu kod, yalnızca yönlendiren URL’nin “izin verilensite.com” içermesi durumunda erişime izin verir. SetEnvIf yönergesi, koşulun karşılanması durumunda bir ortam değişkeni ayarlar ve bu değişkene göre erişim verilir.
Yazının orijinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.