.htaccess

Bu yazıda htaccess’in nasıl kullanıldığıyla ilgili birkaç örnek vereceğim.

Nedir?

.htaccess dosyası, Apache web sunucunuzla ilgili çeşitli kısıtlamalara ve ayarlara imkan sağlayan bir dosyadır. En basitinden sitenizde bulunmayan bir yere girilmeye çalışıldığında web sunucunuz 404 hatası verir. Bu hatayı .htaccess dosyası kullanarak kişiselleştirebilir ve sitenize profesyonellik katabilirsiniz. Ayrıca farklı dizinlerdeki dosyalarınızı parolayla koruyabilir, erişimi kısıtlayabilir, istediğiniz IP adreslerini banlayabilirsiniz.

Nasıl kullanılır?

Buraya yazmak garip olacak ancak Apache’nin kendi dökümantasyonunda da belirtildiği üzere .htaccess dosyasını zorunlu olmadıkça kullanmamaya çalışın. (performansa olan etkilerinden dolayı) Web sunucunuzun konfigürasyon dosyasına erişiminiz varsa herşeyi oradan halledebilirsiniz. .htaccess kullanacaksanız da bu dosyayı etki alanı olacak dizinde oluşturun. Örneğin Ubuntu’da /etc/apache2/sites-available/default içine aşağıdaki satırları eklerseniz

<Directory /var/www/html/protected>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    deny from all
</Directory>

ve

sudo service apache2 restart

komutu ile web sunucunuzu yeniden başlatırsanız /protected klasörüne erişimi her yerden engelleyebilirsiniz.

Kişiselleştirilmiş Hata Sayfaları

İlk önce durum kodlarının ne anlama geldiğine değinelim. 2 ile başlayanlar isteğin başarıyla karşılandığını gösterir, örneğin 200 OK, 201 Created kodudur. 4 ile başlayanlar Client yani istemci tarafındaki hatalardır, 400 Bad Request, 403 Forbidden, 404 File not Found gibi. 5 ile başlayanlar ise sunucu tarafındaki hatalardır, 500 – Internal Server Error, 503 – Service Unavailable gibi. Bu konuda daha fazla bilgiye https://en.wikipedia.org/wiki/List_of_HTTP_status_codes linkinden ulaşabilirsiniz.

Gelelim .htaccess kullanarak kişisel 404 – File not Found sayfamızı yapmaya. Düşündüğünüzden daha kolay olacak tek yapmanız gereken “404hata.html” dosyasını oluşturup web kök dizininizin (var/www/html) altında bir yere yüklemeniz ve yukarda örneğini verdiğim .htaccess dosyasının içine veya .htaccess dosyanıza

ErrorDocument 404 /404hata.html

Parolayla Korunan Dizinler

Örneğin /var/www/html/volga klasörünü parola ile korumak istiyorum. Sunucu konfigürasyon dosyası içine veya belirtilen dizin içerisindeki .htaccess dosyasına

<Directory /var/www/html/volga>
   AuthType Basic
   AuthName "Korumali dizin"
   AuthUserFile /home/volgaa/html/.htpasswd
   require valid-user
</Directory>

yazarak bunu sağlayabilirim. .htpasswd dosyası dikkatinizi çekmiştir. Bu dosya basit olarak md5 ile hashlenmiş kullanıcı adı – şifre tutan bir dosya. http://www.htaccesstools.com/htpasswd-generator/ linkinden istediğiniz .htpasswd dosyasını oluşturabilirsiniz. “require valid-user” ise .htpasswd içerisinde yer alan herhangi bir kullanıcı doğru giriş yaptığında bu dizine ulaşabilsin demek. Bunun yerine “require user volgaa” yazsaydık sadace volgaa kullanıcısıyla buraya giriş yapabilecektik.

Bir Cevap Yazın