Giriş:
Web sunucularının konfigürasyon ayarlarını değiştirmek ve web sitelerine çeşitli özellikler eklemek için kullanılan .htaccess dosyası, Apache HTTP sunucusu tarafından desteklenen bir dosyadır. Bu dosya, web sitenizin kök dizininde bulunur ve belirli ayarlar, yönlendirmeler, güvenlik önlemleri ve diğer özelliklerin tanımlanmasına olanak tanır.
.htaccess Dosyasının Temel İşlevleri:
- Yönlendirme (Redirect):
.htaccess
dosyası, belirli URL’leri başka bir URL’ye yönlendirmek için kullanılabilir. Bu özellikle sayfa adı değişiklikleri, SEO iyileştirmeleri veya site yeniden yapılandırmalarında faydalıdır.
Redirect 301 /eski-url /yeni-url
2. URL Yapısı: SEO dostu URL’ler oluşturmak veya URL yapılarını düzenlemek için kullanılabilir.
RewriteEngine On RewriteRule ^urun/([0-9]+)/?$ urunler.php?id=$1 [NC,L]
3. Güvenlik Ayarları: Dizin erişimini kontrol etmek, belirli dosya türlerini engellemek veya özel erişim izinleri belirlemek amacıyla kullanılabilir.
# Dizin indeksleme kapatma Options -Indexes # .htaccess dosyasına erişimi sınırlama <Files .htaccess> Order Allow,Deny Deny from all </Files>
4. Sunucu Ayarları: Sunucu tarafı önbellekleme, dosya tiplerine göre sıkıştırma ve diğer performans iyileştirmelerini sağlamak için kullanılabilir.
# Gzip sıkıştırma etkinleştirme <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain text/html text/xml </IfModule> # ETags'leri kapatma Header unset ETag FileETag None
5. Rewrite Kuralları: URL’yi yeniden yazma kuralları tanımlayarak dinamik içeriklerin daha okunabilir URL’lerle sunulmasını sağlar.
RewriteEngine On RewriteRule ^blog/([a-zA-Z0-9_-]+)$ blog.php?slug=$1 [L]
.htaccess Dosyası Oluşturma ve Kullanma:
- Oluşturma:
.htaccess
dosyasını oluşturmak için metin editörü kullanabilirsiniz. Dosya adını.htaccess
olarak kaydedin. - Yapılandırma: Dosyanın içine belirli ayarları ve yönlendirmeleri ekleyin. Örnek bir
.htaccess
dosyası:
# URL'leri www ile düzeltme RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # HTML sayfalarını sıkıştırma AddOutputFilterByType DEFLATE text/html # Htaccess dosyasına erişimi sınırlama <Files .htaccess> Order Allow,Deny Deny from all </Files>
3. Sunucu Desteği: .htaccess
dosyaları genellikle Apache HTTP sunucusu tarafından desteklenir. Başka bir sunucu kullanıyorsanız, .htaccess
dosyalarının desteklenip desteklenmediğini kontrol edin.
4. Test Etme: Yapılan değişiklikleri test etmek için tarayıcıda veya bir HTTP istemcisinde (örneğin, cURL veya Postman) denemeler yapın.
Güvenlik İpuçları:
.htaccess
dosyanızın güvenli olduğundan emin olun ve yanlışlıkla dosyanın yayınlanmasını önlemek için gerekli önlemleri alın.- Yapılandırma değişiklikleri yapmadan önce yedekleme alın ve değişikliklerin sitenize uygun olup olmadığını test edin.
.htaccess
dosyasındaki hataları kontrol etmek için sunucu hata kayıtlarını kontrol edin.- Özellikle yönlendirmeleri yapmadan önce SEO etkilerini anlamak için dikkatlice test edin.
Sonuç:
.htaccess
dosyası, web geliştiricilerin Apache sunucularını daha esnek bir şekilde yapılandırmalarına olanak tanır. Ancak, dikkatlice kullanılmalı ve yapılan değişikliklerin web sitesine olası etkilerini anlamak için özen gösterilmelidir. Güvenlik, performans iyileştirmeleri ve SEO açısından önemli bir araç olan .htaccess
, web geliştirme sürecinde değerli bir kaynaktır.