.htaccess Dosyası Kullanımı Rehberi
.htaccess dosyası, Apache web sunucusunda dizin bazlı yapılandırma yapmanızı sağlayan güçlü bir araçtır.
Ana sunucu yapılandırmasına erişmeden aşağıdaki işlemleri gerçekleştirebilirsiniz:
- URL yönlendirmeleri
- SEO uyumlu URL yapıları
- Dizin şifreleme
- Özel hata sayfaları
- MIME tipi tanımlama
Bu rehberde .htaccess dosyasını etkinleştirme, oluşturma ve yaygın kullanım senaryolarını öğreneceksiniz.
Bu Rehberde Neler Öğreneceksiniz?
Bu dokümanda aşağıdaki konular ele alınacaktır:
- Apache’de
.htaccessdesteğini etkinleştirme .htaccessdosyasını doğru dizinde oluşturma- URL yönlendirme ve mod_rewrite kullanımı
- Dizin şifreleme işlemleri
- Özel hata sayfaları ve MIME tipi ekleme
.htaccessdosyasının performans ve güvenlik etkileri
Ön Koşullar
Bu rehberi uygulayabilmek için aşağıdaki bileşenlerin hazır olması gerekir:
- Ubuntu 20.04 veya üzeri bir VPS
- Sudo yetkisine sahip bir kullanıcı
- Etkin UFW güvenlik duvarı
- Kurulu Apache Web Sunucusu
- Alan adı için yapılandırılmış Virtual Host
Örnek Virtual Host dosyası:
/etc/apache2/sites-available/rabisu.cloud.conf
.htaccess Dosyasını Etkinleştirme ve Oluşturma
Apache’de .htaccess Kullanımını Etkinleştirme
Apache varsayılan olarak .htaccess dosyasını AllowOverride ayarı etkinleştirilmeden çalıştırmaz.
Virtual Host dosyasını açın
sudo nano /etc/apache2/sites-available/rabisu.cloud.conf
Aşağıdaki yapılandırmayı ekleyin veya düzenleyin:
<VirtualHost *:80>
ServerName rabisu.cloud
DocumentRoot /var/www/rabisu.cloud
<Directory /var/www/rabisu.cloud>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
AllowOverride Allayarı .htaccess kullanımını aktif eder.
Apache servisini yeniden başlatın
sudo systemctl restart apache2
.htaccess Dosyasını Oluşturma
.htaccess dosyası web sitenizin kök dizininde bulunmalıdır.
Web kök dizinine gidin:
cd /var/www/rabisu.cloud
Dosyayı oluşturun:
sudo nano .htaccess
Artık .htaccess dosyasına istediğiniz Apache yönergelerini ekleyebilirsiniz.
.htaccess Dosyasının Yaygın Kullanım Alanları
Dizin Şifre Koruması
- Parola dosyası oluşturma:
sudo htpasswd -c /etc/apache2/.htpasswd rabisu-user
- .htaccess içine ekleyin
AuthType Basic
AuthName "Korunan Alan"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
Bu yapılandırma dizine erişim için kullanıcı adı ve parola doğrulaması ister.
URL Yeniden Yazma (mod_rewrite)
SEO uyumlu temiz URL yapıları oluşturabilirsiniz.
RewriteEngine On
RewriteRule ^sayfa/([0-9]+)$ sayfa.php?id=$1 [NC,L]
Bu kural aşağıdaki dönüşümü yapar:
site.com/sayfa/5
→
site.com/sayfa.php?id=5
Özel Hata Sayfaları
Sunucu hatalarında özel sayfalar göstermek için:
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
MIME Türleri Ekleme
Apache’in özel dosya türlerini tanıması için:
AddType application/x-font-otf .font
SSI (Server Side Includes) Etkinleştirme
SSI kullanmak için:
AddType text/html .shtml
AddHandler server-parsed .shtml
HTML dosyalarında SSI çalıştırmak için:
XBitHack on
Dosyaya çalıştırma izni verin:
chmod +x sayfa.html
.htaccess Performans ve Güvenlik Etkileri
Performans
Apache her istekte .htaccess dosyasını kontrol ettiği için büyük projelerde küçük gecikmeler oluşabilir.
Bu nedenle yüksek trafikli sitelerde ayarların Apache ana yapılandırma dosyasında yapılması önerilir.
Güvenlik
.htaccess dosyası hızlı yapılandırma sağlar ancak yanlış yapılandırıldığında güvenlik riskleri oluşturabilir.
Özellikle:
Dosya izinleri Yetkisiz erişim Yanlış yönlendirmeler
dikkatle kontrol edilmelidir.
Sıkça Sorulan Sorular (SSS)
.htaccess neden gizli dosyadır?
Başındaki "." karakteri nedeniyle Linux sistemlerinde gizli dosya olarak kabul edilir.
AllowOverride All yerine başka değer kullanabilir miyim?
Evet, ancak bazı .htaccess özellikleri devre dışı kalabilir.
Alt dizinler .htaccess ayarlarından etkilenir mi?
Evet. Varsayılan olarak tüm alt dizinler aynı kuralları miras alır.
Apache yapılandırması mı yoksa .htaccess mi daha performanslı?
Performans açısından Apache ana yapılandırması, esneklik açısından .htaccess tercih edilir.
Bir dizinde birden fazla .htaccess olabilir mi?
Evet. Her dizin kendi .htaccess dosyasını içerebilir.
Sonuç
Bu rehberde .htaccess dosyasını Apache üzerinde etkinleştirmeyi ve temel yapılandırmaları uygulamayı öğrendiniz.
Doğru kullanıldığında .htaccess:
URL yönlendirmelerini kolaylaştırır Dizine erişimi kontrol eder SEO uyumlu URL yapıları oluşturur Hata sayfalarını özelleştirmenizi sağlar
Altyapınızı daha güçlü hale getirmek için Rabisu Bulut üzerinde yüksek performanslı sunucular kullanarak Apache yapılandırmalarınızı kolayca yönetebilirsiniz.