Ana içeriğe geç

🔧 .htaccess Dosyası Kullanımı Rehberi

.htaccess dosyası, Apache üzerinde dizin bazlı özelleştirilmiş ayarlar yapmanızı sağlar.
Ana sunucu yapılandırmasına erişmeden yönlendirme, şifre koruması, özel hata sayfaları ve MIME tipi ekleme gibi işlemleri hızlıca uygulayabilirsiniz.


📌 Bu Rehberde Ne Öğreneceksiniz?

  • Apache’de .htaccess desteğini etkinleştirme
  • .htaccess dosyasını doğru konuma ekleme
  • URL yönlendirme, kimlik doğrulama ve hata sayfaları gibi yaygın işlemleri yapma
  • Performans ve güvenlik üzerindeki etkileri anlama

🧠 Teknik Özet

Bu rehber, Apache üzerinde .htaccess dosyasını etkinleştirip kullanarak dizin düzeyinde yapılandırma yapmayı öğretir.
Amaç, ana sunucu ayarlarına dokunmadan SEO uyumlu yönlendirmeler, dizin koruma, özel hata sayfaları ve MIME tipi ekleme gibi ayarları yönetmektir.
Adımlar: VirtualHost içerisine AllowOverride All eklemek, Apache’yi yeniden başlatmak ve web kök dizinine .htaccess dosyasını oluşturmak.


🛠️ Ön Koşullar

Bu rehberdeki uygulamaları gerçekleştirmek için:

  • Ubuntu 20.04+ bir VPS
  • Sudo yetkisine sahip kullanıcı
  • Etkin UFW güvenlik duvarı
  • Kurulu bir Apache Web Sunucusu
  • Alan adınız için hazırlanmış Virtual Host dosyası
    (Örn: /etc/apache2/sites-available/rabisu.cloud.conf)
  • (Opsiyonel) Alan adınızın sunucu IP adresine yönlendirilmiş olması

📝 Adımlar: .htaccess Dosyasını Etkinleştirme ve Oluşturma


1. Apache’de .htaccess Kullanımını Etkinleştirme

Apache, .htaccess dosyasını AllowOverride All aktifleştirilmedikçe çalıştırmaz.

1.1 Virtual Host dosyasını açın:

sudo nano /etc/apache2/sites-available/rabisu.cloud.conf

VirtualHost yapılandırmasını düzenler.

1. Directory bloğunu ekleyin:


<VirtualHost *:80>

DocumentRoot /var/www/rabisu.cloud
ServerName rabisu.cloud

<Directory /var/www/rabisu.cloud>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

</VirtualHost>


  • AllowOverride All → .htaccess kullanımını aktif eder.

2. Apache'yi yeniden başlatın:


sudo service apache2 restart
  • Yeni ayarların uygulanmasını sağlar.

2. .htaccess Dosyasını Oluşturma

.htaccess dosyası web sitenizin kök dizininde bulunmalıdır.

2.1 Web kök dizinine gidin:


cd /var/www/rabisu.cloud
  • Çalışma dizinini site kök klasörüne taşır.

1. Dosyayı oluşturun:


sudo nano .htaccess

Boş bir .htaccess dosyası oluşturur.

  • Artık istediğiniz yönergeleri ekleyebilirsiniz.

3.🔑 .htaccess Dosyasının Yaygın Kullanım Alanları

3.1 Dizin Şifre Koruması

1. Şifre dosyasını oluşturun:


sudo htpasswd -c /etc/apache2/.htpasswd rabisu-user
  • Kullanıcı için parola dosyası oluşturur.

2. .htaccess içine ekleyin:


AuthType Basic
AuthName "Korunan Alan"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
Dizine erişim için şifre istemesi sağlanır.

3. URL Yeniden Yazma (mod_rewrite)

SEO uyumlu temiz URL’ler oluşturabilirsiniz.


RewriteEngine On
RewriteRule ^sayfa/([0-9]+)$ sayfa.php?id=$1 [NC,L]

URL’leri okunabilir forma dönüştürür.


4. 🚫 Özel Hata Sayfaları


ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

Sunucu hata durumlarında özel sayfalar gösterir.

🎧 4.1 MIME Türleri Ekleme


AddType application/x-font-otf .font

Sunucunun özel dosya türlerini tanımasını sağlar.


🧩 5. SSI (Server Side Includes) Etkinleştirme


AddType text/html .shtml
AddHandler server-parsed .shtml

SHTML dosyalarındaki SSI komutlarını işler.

  • HTML dosyalarını da SSI için işlemek isterseniz:

XBitHack on
  • Sayfaya çalışma izni verin:

chmod +x sayfa.html

HTML dosyasını SSI uyumlu hale getirir.


6. .htaccess'in Hız ve Güvenlik Üzerindeki Etkisi

6.1 ⏳ Performans

.htaccess dosyası her istek geldiğinde kontrol edildiği için çok büyük sitelerde küçük gecikmelere yol açabilir.

6.2 🔐 Güvenlik

.htaccess hızlı test imkânı sağlar ancak yetkisiz kullanıcılar tarafından düzenlenirse yüksek risk taşır. Apache, mümkünse ayarların VirtualHost içinde yapılmasını önerir.


❓ Sıkça Sorulan Sorular (SSS)

1. .htaccess neden gizlidir? Önündeki nokta nedeniyle gizli dosya statüsündedir.

2. AllowOverride All yerine farklı değer kullanabilir miyim? Kullanabilirsiniz fakat çoğu özelliği devre dışı bırakır.

3. Alt dizinler de .htaccess ayarlarından etkilenir mi? Evet, aksi belirtilmedikçe tüm alt dizinler etkilenir.

4. Apache mi .htaccess mi daha performanslı? Performans için Apache config, esneklik için .htaccess tercih edilir.

5. Bir dizinde birden fazla .htaccess olabilir mi? Evet, her dizin kendi ayarını içerebilir.


🏁 Sonuç

Bu rehberde .htaccess dosyasını etkinleştirip sık kullanılan yapılandırmaları uygulamayı öğrendiniz. Doğru kullanıldığında .htaccess, web sitenize büyük esneklik kazandırır; yanlış yapılandırıldığında ise performans ve güvenlik sorunlarına yol açabilir.

Daha gelişmiş yapılandırmalar için Rabisu Bulut çözümlerini değerlendirerek altyapınızı güçlendirebilirsiniz.