.htaccess Nedir? Nasıl Kullanılır?
Hakan // 28 August 2009 // 0 comment(s) // category: WebNedir?
.htaccess dosyaları, ya da dağıtık konfigürasyon dosyaları, klasör düzeyinde konfigürasyon değişiklikliklerine izin veren, bir veya daha fazla direktif içeren dosyalardır. Bulundukları dizinlere ve bulundukları dizinlerin alt dizinlerine etki ederler.
.htaccess dosyalarına yazılabilecek direktifler AllowOverride direktifi tarafından belirlenir. (örneğin; AllowOverride All) AllowOverride komutu, .htaccess dosyasında bulunan hangi direktiflerin uygulanacağını belirlemek için kullanılır.
Ne zaman kullanılmaz?
Genel olarak sunucunun ana konfigürasyon dosyasına erişim olmadığında kullanılır. Sistem yöneticisi tarafından diğer kullanıcıların root’a erişiminin olmadığı durumlarda kendi dizinlerinin izinlerini değiştirebilmeleri için kullandırılır. Örneğin tek makinede birden fazla sitenin barındırıldığı hosting sistemlerinde kullanıcılar kendi dizinlerinin konfigürasyonlarını .htaccess dosyaları kullanarak değiştirebilirler.
Eğer mümkünse .htaccess kullanımından kaçınılmalıdır. .htaccess dosyasına yazılabilecek her direktif, efektif bir şekilde sunucunun ana konfigürasyon dosyasındaki bölümüne yazılabilir.
.htaccess kullanmamak için iki ana sebep vardır:
- Birinci sebep performanstır. .htaccess kullanımı açıldığında, her dosya çağrılışında Apache o dosyanın bulunduğu dizinde ve daha üst dizinlerde .htaccess dosyası olup olmadığına bakar. Bir dökümanın her çağrılışında .htaccess dosyası yeniden yüklenir ve dökümanın her çağrılışında dökümana kadar olan dizinlerin hepsine bakıldığından, ( .htaccess kullanılmak istense de istenmese de) bu disk erişimleri performansta kayba yol açar.
- İkinci sebep güvenliktir. Kullanıcıların .htaccess kullanmasına izin verildiğinde, sistem yöneticisinin engelleyemeyeceği değişiklikler yapılmasına izin verilebilir. Bu sebeple kullanıcılara hangi izinlerin verileceğine dikkat edilmelidir.
.htaccess dosyası kullanmak yerine direktifler httpd.conf içinde kullanıldığında ise bu komutlar her döküman çağrılması yerine Apache başlatıldığında bir kez yüklenir.
Dizinleri nasıl etkiler?
- Bir dizinde .htaccess dosyası bulunuyorsa, içindeki direktifler hem o dizine hem de alt dizinlerine uygulanır. örneğin /www/.htaccess içindeki direktifler /www/htdocs/hakan/ dizinine de geçerlidir.
- Bir dizinde bulunan .htaccess dosyasındaki direktifler, daha üst dizinlerdeki .htaccesslerden gelen direktifleri override edebilir. Bunun anlamı, belirli bir dizin içindeki alt dizinlerin, ana dizinde geçerli olan direktiflerden farklı konfigürasyon değişiklikleri içerebileceğidir. Örneğin /www/htdocs/.htaccess dosyasında
Options +ExecCGIyazıyor ve /www/htdocs/hakan/.htaccess dosyasındaOptions Includedyazıyorsa, /hakan dizinindeOptions Includedgeçerlidir.