WordPress tabanlı bir web sitesi yönetiyorsanız, .htaccess dosyasının gücünü anlamak ve doğru şekilde kullanmak, sitenizin hem güvenliğini hem de performansını önemli ölçüde artırabilir. Genellikle göz ardı edilen bu küçük metin dosyası, sunucunuzun davranışını kontrol eden güçlü bir araçtır. URL yönlendirmelerinden güvenlik katmanlarına, önbellekleme ayarlarından erişim kısıtlamalarına kadar pek çok kritik işlemi .htaccess üzerinden yönetebilirsiniz. Bu dosya, web sitenizin temel yapılandırma anahtarıdır ve doğru yapılandırıldığında SEO, kullanıcı deneyimi ve site hızı gibi alanlarda size büyük avantajlar sağlar.
İçerik Tablosu
.htaccess Dosyasının Temelleri
.htaccess dosyası, Apache web sunucularında çalışan ve sunucu yapılandırmasını dizin bazında değiştirmeye olanak tanıyan bir yapılandırma dosyasıdır. Bu dosya, web sitenizin ana dizininde (root) bulunur ve içerisine eklenen komutlarla sunucunun o dizin ve alt dizinler için nasıl davranacağını belirler. WordPress’in temel işleyişinden gelişmiş güvenlik önlemlerine kadar geniş bir yelpazede kritik roller üstlenir.
.htaccess Dosyası Nedir ve Ne İşe Yarar?
.htaccess (hypertext access), Apache web sunucusu yazılımı tarafından kullanılan bir yapılandırma dosyasıdır. Bu dosyanın en temel işlevi, sunucunun global ayarlarını değiştirmeden, belirli bir dizin için özel kurallar tanımlamaktır. Nokta ile başladığı için genellikle “gizli dosya” olarak kabul edilir. .htaccess dosyası sayesinde URL’leri yeniden yazabilir (URL rewriting), belirli IP adreslerini engelleyebilir, özel hata sayfaları oluşturabilir, şifre korumalı dizinler yaratabilir ve sitenizin performansını artırmak için tarayıcı önbellekleme gibi optimizasyonlar yapabilirsiniz.
.htaccess Dosyasının Sunucu Yapısındaki Yeri ve Çalışma Mantığı
.htaccess dosyası, web sitenizin ana yayın dizininde, genellikle public_html veya www klasöründe yer alır. Bir kullanıcı sitenizdeki bir sayfayı ziyaret etmek istediğinde, Apache web sunucusu, istenen dosyanın bulunduğu dizinden başlayarak kök dizine kadar her klasörde bir .htaccess dosyası olup olmadığını kontrol eder. Eğer bir .htaccess dosyası bulursa, içerisindeki direktifleri okur ve uygular. Bu hiyerarşik yapı, alt dizinlere özel kurallar tanımlamayı mümkün kılar. Örneğin, bir alt klasöre koyduğunuz .htaccess dosyası, sadece o klasör için geçerli olan kurallar içerebilir.
WordPress Kurulumunda .htaccess Dosyasının Rolü
WordPress, “kalıcı bağlantılar” (permalinks) veya diğer adıyla “güzel URL’ler” oluşturmak için .htaccess dosyasına hayati derecede ihtiyaç duyar. Varsayılan olarak WordPress, yazıları ve sayfaları alanadiniz.com/?p=123 gibi parametrik URL’lerle sunar. Ancak bu yapı hem kullanıcı dostu hem de SEO uyumlu değildir. Ayarlar > Kalıcı Bağlantılar menüsünden “Yazı ismi” gibi bir yapı seçtiğinizde, WordPress .htaccess dosyasına otomatik olarak belirli kurallar ekler. Bu kurallar, alanadiniz.com/ornek-yazi/ gibi temiz bir URL’yi sunucunun anlayacağı index.php dosyasına yönlendirir. Kısacası, .htaccess olmadan, WordPress’in SEO dostu URL yapısı çalışmaz.
.htaccess Dosyası Nasıl Bulunur ve Görüntülenir?
.htaccess dosyası, başında nokta olduğu için işletim sistemleri tarafından gizli dosya olarak kabul edilir. Bu nedenle, standart bir dosya yöneticisi görünümünde hemen göremeyebilirsiniz. Dosyayı görüntülemek için “gizli dosyaları göster” seçeneğini aktif hale getirmeniz gerekir. Bu dosyaya erişmek için en yaygın iki yöntem aşağıda açıklanmıştır.
cPanel Dosya Yöneticisi ile Görüntüleme
Eğer hosting sağlayıcınız cPanel kullanıyorsa, .htaccess dosyasını bulmak oldukça basittir. cPanel’e giriş yaptıktan sonra “Dosyalar” bölümünden “Dosya Yöneticisi”ni açın. Sağ üst köşedeki “Ayarlar” butonuna tıklayın ve açılan pencerede “Gizli Dosyaları Göster (dotfiles)” seçeneğini işaretleyip kaydedin. Bu işlemden sonra web sitenizin ana dizininde (genellikle public_html) .htaccess dosyasını görebilir ve düzenleyebilirsiniz.
FTP/SFTP İstemcisi ile Görüntüleme
FileZilla, Cyberduck veya WinSCP gibi bir FTP/SFTP istemcisi kullanarak da sunucunuza bağlanabilirsiniz. Sunucuya bağlandıktan sonra, istemcinizin ayarlarından “Gizli dosyaları göstermeye zorla” veya benzeri bir seçeneği aktif hale getirin. Bu sayede, sitenizin ana dizininde .htaccess dosyasını listeleyebilir, bilgisayarınıza indirebilir, düzenleyebilir ve tekrar sunucuya yükleyebilirsiniz.
WordPress Varsayılan .htaccess Ayarları ve Kalıcı Bağlantılar (Permalinks)
Bir WordPress sitesi kurduğunuzda, sistemin düzgün çalışması için temel bir .htaccess dosyası oluşturulur. Bu dosyanın en önemli görevi, kullanıcıların ve arama motorlarının gördüğü temiz URL’leri, WordPress’in arka planda anladığı dinamik sorgulara çevirmektir. Bu işlevsellik, kalıcı bağlantı (permalink) ayarlarıyla doğrudan ilişkilidir ve sitenizin URL yapısının temelini oluşturur.
WordPress Tarafından Otomatik Oluşturulan Standart .htaccess Kodları
WordPress’i ilk kurduğunuzda veya kalıcı bağlantı ayarlarınızı ilk kez kaydettiğinizde, .htaccess dosyanızın içine aşağıdaki gibi standart bir kod bloğu eklenir. Bu kodlar, sitenize gelen tüm isteklerin, eğer bir dosya veya dizin değilse, WordPress’in ana index.php dosyasına yönlendirilmesini sağlar. Bu sayede WordPress, gelen URL’yi analiz ederek doğru içeriği kullanıcıya sunabilir.
Standart WordPress .htaccess Kodu:
# BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule># END WordPress
Bu blok içindeki kodlar WordPress tarafından yönetilir ve manuel olarak değiştirilmemesi önerilir. # BEGIN WordPress ve # END WordPress etiketleri, WordPress’in bu bölümü tanımasını ve gerektiğinde güncellemesini sağlar.
Kalıcı Bağlantı (Permalink) Yapısının .htaccess Dosyasına Etkisi
Kalıcı bağlantı (permalink) yapısı, sitenizdeki içeriklerin URL’lerinin nasıl görüneceğini belirler. WordPress yönetici panelinde Ayarlar > Kalıcı Bağlantılar bölümüne gittiğinizde “Basit”, “Gün ve İsim”, “Ay ve İsim”, “Sayısal” ve “Yazı ismi” gibi seçenekler görürsünüz. “Yazı ismi” (/ornek-yazi/) gibi SEO dostu bir yapıyı seçtiğinizde, .htaccess dosyasındaki yukarıda belirtilen kurallar bu yapıyı mümkün kılar. Tarayıcıya girilen bu temiz URL, .htaccess sayesinde WordPress’e “bu içeriği veritabanından bul ve göster” komutu olarak iletilir. Yani, seçtiğiniz her kalıcı bağlantı yapısı, .htaccess dosyasının yönlendirme mantığına dayanır.
Kalıcı Bağlantı Ayarlarını Değiştirdikten Sonra .htaccess Dosyasını Güncelleme
Genellikle, WordPress yönetici panelinden kalıcı bağlantı ayarlarınızı değiştirip “Değişiklikleri Kaydet” butonuna tıkladığınızda, WordPress otomatik olarak .htaccess dosyasını günceller. Ancak bazen, dosya yazma izinlerindeki bir sorun nedeniyle bu işlem başarısız olabilir. Bu durumda, WordPress size güncellenmesi gereken kodları bir kutucuk içinde sunar ve bu kodları manuel olarak .htaccess dosyanıza kopyalamanızı ister. Eğer kalıcı bağlantılarınızı değiştirdikten sonra yazı ve sayfalarınızda “404 Sayfa Bulunamadı” hatası alıyorsanız, ilk yapmanız gereken şey Ayarlar > Kalıcı Bağlantılar sayfasına gidip hiçbir değişiklik yapmadan “Değişiklikleri Kaydet” butonuna basmaktır. Bu işlem, .htaccess dosyasının yeniden oluşturulmasını tetikler ve genellikle sorunu çözer.
.htaccess ile WordPress Güvenliğini Artırma Yöntemleri
WordPress sitenizin güvenliği, sadece güçlü şifreler ve güncel eklentilerle sınırlı değildir. Sunucu seviyesinde alacağınız önlemler, saldırganların sitenize erişmesini çok daha zor hale getirebilir. .htaccess dosyası, bu konuda en etkili araçlardan biridir. Basit kod blokları ekleyerek yönetici panelinizi koruyabilir, kritik dosyalara erişimi engelleyebilir ve yaygın saldırı türlerine karşı bir savunma hattı oluşturabilirsiniz.
Yönetici Paneli (wp-admin) Klasörünü Koruma
WordPress yönetici paneli (/wp-admin/), kaba kuvvet (brute-force) saldırılarının en yaygın hedefidir. Bu alanı ek güvenlik katmanlarıyla korumak, sitenizin kontrolünü kaybetmenizi önler.
Belirli IP Adreslerine Erişim İzni Verme
Eğer yönetici paneline sadece siz veya belirli birkaç kişi erişiyorsa, en etkili yöntemlerden biri IP kısıtlamasıdır. Bu yöntemle, yalnızca belirlediğiniz IP adresleri wp-admin klasörüne erişebilir. /wp-admin/ klasörünün içine yeni bir .htaccess dosyası oluşturup aşağıdaki kodları ekleyin. “YOUR_IP_ADDRESS” kısmını kendi IP adresinizle değiştirmeyi unutmayın.
order deny,allowallow from YOUR_IP_ADDRESSdeny from all
Ek Şifre Koruması Ekleme (.htpasswd)
Yönetici paneline ikinci bir şifre katmanı eklemek, güvenliği önemli ölçüde artırır. Bu, sunucu düzeyinde bir kimlik doğrulamasıdır. İlk olarak, bir .htpasswd dosyası oluşturmanız gerekir. cPanel’de bu işlemi “Dizin Gizliliği” aracıyla kolayca yapabilirsiniz. Ardından, /wp-admin/ klasöründeki .htaccess dosyasına aşağıdaki kodları ekleyerek bu şifre korumasını aktif hale getirebilirsiniz. /path/to/your/.htpasswd yolunu kendi dosya yolunuzla güncellemelisiniz.
AuthType BasicAuthName "Admin Area"AuthUserFile /path/to/your/.htpasswdrequire valid-user
Kritik WordPress Dosyalarına Erişimi Engelleme
WordPress kurulumunuzda, veritabanı bilgileri gibi hassas verileri içeren veya saldırganlar tarafından kötüye kullanılabilecek bazı dosyalar bulunur. Bu dosyalara web üzerinden doğrudan erişimi engellemek kritik bir güvenlik adımıdır.
wp-config.php Dosyasını Koruma Altına Alma
wp-config.php dosyası, veritabanı bağlantı bilgileriniz dahil olmak üzere sitenizin en hassas bilgilerini içerir. Bu dosyaya tarayıcı üzerinden erişimi tamamen engellemek için sitenizin ana dizinindeki .htaccess dosyasına aşağıdaki kodu ekleyin.
<files wp-config.php>order allow,denydeny from all</files>
xmlrpc.php Dosyasına Erişimi Kapatma
xmlrpc.php dosyası, uzaktan erişim ve otomasyon için kullanılsa da, DDoS ve brute-force saldırıları için sıkça hedef alınır. Eğer mobil uygulama veya Jetpack gibi bu dosyayı gerektiren bir servis kullanmıyorsanız, erişimi kapatmak en güvenli yoldur. Ana .htaccess dosyanıza şu kodları ekleyin:
<files xmlrpc.php>order allow,denydeny from all</files>
Dizin Listelemeyi (Directory Browsing) Kapatma
Sunucunuzda, içinde index.html veya index.php dosyası bulunmayan bir klasöre erişildiğinde, Apache varsayılan olarak o klasörün içeriğini listeler. Bu durum, saldırganların sitenizin dosya yapısını görmesine ve potansiyel zafiyetleri keşfetmesine olanak tanır. Dizin listelemeyi kapatmak için ana .htaccess dosyanıza şu basit satırı eklemeniz yeterlidir:
Options -Indexes
PHP Kodlarının Belirli Klasörlerde Çalışmasını Engelleme
Saldırganlar, sitenize bir şekilde zararlı bir dosya yüklemeyi başarırlarsa, bu dosyayı çalıştırmak için genellikle wp-content/uploads gibi yazma izni olan klasörleri hedefler. Bu klasörlerde PHP kodlarının çalışmasını engelleyerek, yüklenmiş olsa bile zararlı bir scriptin çalışmasını önleyebilirsiniz. wp-content/uploads/ klasörünün içine yeni bir .htaccess dosyası oluşturun ve şu kodları ekleyin:
<Files *.php>deny from all</Files>
Hotlinking (Resim ve Dosya Hırsızlığı) Önleme
Hotlinking, başka web sitelerinin sizin resimlerinizi veya diğer dosyalarınızı doğrudan kendi sayfalarında, sizin sunucu kaynaklarınızı (bant genişliği) kullanarak göstermesidir. Bu, hem içeriğinizin izinsiz kullanılmasına hem de sunucu maliyetlerinizin artmasına neden olur. Hotlinking’i önlemek için ana .htaccess dosyanıza aşağıdaki kodu ekleyin. your-domain.com kısmını kendi alan adınızla değiştirmeyi unutmayın.
RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?your-domain.com [NC]RewriteRule \.(jpg|jpeg|png|gif|bmp)$ - [NC,F,L]
Kötü Niyetli Botları ve İstenmeyen Ziyaretçileri Engelleme
Sitenizi sürekli olarak tarayan, içerik çalan veya zafiyet arayan kötü niyetli botları engellemek, hem güvenliğinizi hem de performansınızı artırır. Bu botları “User-Agent” (kullanıcı aracısı) bilgisine göre veya IP adreslerine göre engelleyebilirsiniz. Aşağıdaki kod, belirli bir User-Agent’a sahip bir botu engeller:
RewriteEngine OnRewriteCond %{HTTP_USER_AGENT} ^BadBot [NC]RewriteRule .* - [F,L]
XSS (Cross-Site Scripting) Saldırılarına Karşı Temel Koruma
XSS saldırıları, saldırganların siteniz üzerinden diğer kullanıcıların tarayıcılarında zararlı scriptler çalıştırmasına olanak tanır. .htaccess dosyası ile bazı temel HTTP başlıklarını ayarlayarak bu tür saldırılara karşı ek bir koruma katmanı sağlayabilirsiniz. Aşağıdaki kodlar, bazı yaygın XSS ve tıklama kaçırma (clickjacking) saldırılarını zorlaştırır.
<IfModule mod_headers.c>Header set X-XSS-Protection "1; mode=block"Header set X-Content-Type-Options "nosniff"Header set X-Frame-Options "SAMEORIGIN"</IfModule>
.htaccess ile Gelişmiş URL Yönlendirme (Redirection) Ayarları
URL yönlendirme, bir URL’ye gelen isteği farklı bir URL’ye otomatik olarak gönderme işlemidir. .htaccess dosyası, bu yönlendirmeleri sunucu düzeyinde yönetmek için güçlü ve esnek bir araçtır. Doğru yönlendirme stratejileri, hem kullanıcı deneyimini iyileştirir hem de sitenizin SEO değerini korur. Özellikle site taşıma, içerik güncelleme veya URL yapısını değiştirme gibi durumlarda yönlendirmeler hayati önem taşır.
Yönlendirme Türleri Arasındaki Farklar
Web dünyasında en sık kullanılan iki yönlendirme türü 301 ve 302’dir. Her ikisi de kullanıcıyı yeni bir adrese gönderse de, arama motorlarına verdikleri sinyaller ve kullanım amaçları tamamen farklıdır.
| Özellik | 301 Kalıcı Yönlendirme | 302 Geçici Yönlendirme |
|---|---|---|
| Anlamı | İçerik kalıcı olarak yeni bir adrese taşındı. | İçerik geçici olarak başka bir adreste bulunuyor. |
| SEO Etkisi | Eski URL’nin SEO değerinin (link gücü, otorite vb.) %90-99’unu yeni URL’ye aktarır. | SEO değerini yeni URL’ye aktarmaz. Arama motorları orijinal URL’yi dizinde tutmaya devam eder. |
| Kullanım Senaryoları | – Siteyi yeni bir domaine taşıma – HTTP’den HTTPS’ye geçiş – Silinen bir sayfanın en alakalı alternatife yönlendirilmesi – URL yapısını kalıcı olarak değiştirme | – A/B testi için kullanıcıları geçici olarak farklı bir sayfaya yönlendirme – Bakımdayken siteyi geçici bir sayfaya yönlendirme – Cihaza veya lokasyona özel içerik sunma |
| Tarayıcı Önbelleği | Tarayıcılar tarafından kalıcı olarak önbelleğe alınır. | Genellikle önbelleğe alınmaz, her istekte yeniden kontrol edilir. |
301 Kalıcı Yönlendirme Nedir ve SEO İçin Neden Önemlidir?
301 yönlendirmesi, bir web sayfasının kalıcı olarak yeni bir konuma taşındığını belirtir. SEO açısından en önemli yönlendirme türüdür çünkü arama motorlarına “Bu sayfanın tüm sıralama gücünü, backlink değerini ve otoritesini yeni adrese aktar” mesajını verir. Bir sayfayı sildiğinizde veya URL’sini değiştirdiğinizde 301 yönlendirmesi yapmazsanız, o sayfanın kazandığı tüm SEO değeri kaybolur ve kullanıcılar 404 hata sayfasıyla karşılaşır. Bu nedenle, site yapısında yapılan kalıcı değişikliklerde 301 yönlendirmesi kullanmak zorunludur.
302 Geçici Yönlendirme Nedir ve Ne Zaman Kullanılır?
302 yönlendirmesi ise bir sayfanın geçici olarak farklı bir adreste bulunduğunu belirtir. Arama motorları bu yönlendirmeyi gördüğünde, orijinal URL’yi dizinlerinde tutmaya devam eder ve SEO değerini yeni adrese aktarmaz. Bu, “orijinal sayfa yakında geri dönecek” anlamına gelir. Genellikle kısa süreli bakım çalışmaları, bir ürünün stokta olmaması durumunda kullanıcıyı benzer bir ürüne yönlendirme veya coğrafi konuma göre farklı içerik gösterme gibi geçici durumlar için kullanılır.
Yaygın Yönlendirme Senaryoları
.htaccess dosyası ile çeşitli yönlendirme ihtiyaçlarını kolayca karşılayabilirsiniz.
Tek Bir Sayfayı veya Yazıyı Yeni Bir URL’ye Yönlendirme
Eski bir blog yazısını güncelleyip URL’sini değiştirdiğinizde, eski URL’yi yenisine yönlendirmek için aşağıdaki kodu kullanabilirsiniz.
Redirect 301 /eski-sayfa.html https://www.alanadiniz.com/yeni-sayfa/
Belirli Bir Klasörü Farklı Bir URL’ye Yönlendirme
Sitenizdeki /blog/ klasörünü tamamen yeni bir alt alan adına (subdomain) taşıdıysanız, tüm klasörü yönlendirebilirsiniz.
Redirect 301 /eski-klasor/ https://yeni.alanadiniz.com/
Tüm Siteyi Yeni Bir Alan Adına (Domain) Yönlendirme
Eğer tüm web sitenizi yeni bir alan adına taşıyorsanız, eski alan adının .htaccess dosyasına aşağıdaki kodu ekleyerek tüm trafiği ve SEO değerini yeni siteye aktarabilirsiniz.
RewriteEngine onRewriteCond %{HTTP_HOST} ^eskialanadi.com [NC,OR]RewriteCond %{HTTP_HOST} ^www.eskialanadi.com [NC]RewriteRule ^(.*)$ https://www.yenialanadi.com/$1 [L,R=301,NC]
Alan Adı Yapısını Standartlaştırma
Arama motorları, www.alanadiniz.com ve alanadiniz.com adreslerini iki farklı site olarak algılayabilir. Bu durum, “yinelenen içerik” sorunlarına yol açabilir. Tercih ettiğiniz bir sürümü belirleyip diğerini ona yönlendirmek, SEO için en iyi uygulamalardan biridir.
WWW Olmayan Sürümü WWW Olan Sürüme Yönlendirme
RewriteEngine OnRewriteCond %{HTTP_HOST} ^alanadiniz.com [NC]RewriteRule ^(.*)$ https://www.alanadiniz.com/$1 [L,R=301]
WWW Olan Sürümü WWW Olmayan Sürüme Yönlendirme
RewriteEngine OnRewriteCond %{HTTP_HOST} ^www.alanadiniz.com [NC]RewriteRule ^(.*)$ https://alanadiniz.com/$1 [L,R=301]
HTTPS’ye (SSL) Zorunlu Yönlendirme Yapma
Web sitenizde bir SSL sertifikası kuruluysa, tüm HTTP trafiğini güvenli olan HTTPS sürümüne yönlendirmek hem güvenlik hem de SEO için bir zorunluluktur. Google, HTTPS’yi bir sıralama faktörü olarak kabul etmektedir.
RewriteEngine OnRewriteCond %{HTTPS} offRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Özel 404 Hata Sayfası Oluşturma ve Yönlendirme
Ziyaretçiler sitenizde bulunmayan bir sayfaya erişmeye çalıştığında, varsayılan ve genellikle sıkıcı bir 404 hata sayfasıyla karşılaşırlar. Marka kimliğinizi yansıtan, yardımcı linkler içeren özel bir 404 sayfası oluşturmak, kullanıcı deneyimini iyileştirir. Özel 404 sayfanızı oluşturduktan sonra, .htaccess dosyasına aşağıdaki satırı ekleyerek yönlendirmeyi yapabilirsiniz.
ErrorDocument 404 /404.html
.htaccess ile WordPress Performans Optimizasyonu
Web sitesi hızı, hem kullanıcı deneyimi hem de arama motoru sıralamaları için kritik bir faktördür. Yavaş yüklenen bir site, ziyaretçilerin hemen çıkmasına (bounce rate) neden olurken, arama motorları tarafından da daha düşük sıralarda listelenir. .htaccess dosyası, sunucu düzeyinde bazı performans ayarlarını etkinleştirerek sitenizin yükleme sürelerini önemli ölçüde iyileştirmenize olanak tanır. Bu optimizasyonlar genellikle tarayıcı önbellekleme ve veri sıkıştırma üzerine odaklanır.
Tarayıcı Önbellekleme (Browser Caching) Özelliğini Etkinleştirme
Bir kullanıcı web sitenizi ziyaret ettiğinde, tarayıcısı sitenin statik dosyalarını (CSS, JavaScript, resimler gibi) indirir. Tarayıcı önbellekleme, bu dosyaların kullanıcının bilgisayarında geçici bir süre saklanmasını sağlar. Böylece, kullanıcı sitenizi tekrar ziyaret ettiğinde veya başka bir sayfaya geçtiğinde, bu dosyalar yeniden sunucudan indirilmek yerine yerel diskten hızlıca yüklenir. Bu, sayfa yükleme süresini dramatik bir şekilde azaltır. .htaccess ile bu özelliği etkinleştirmek için mod_expires modülünü kullanabilirsiniz.
<IfModule mod_expires.c>ExpiresActive OnExpiresByType image/jpg "access 1 year"ExpiresByType image/jpeg "access 1 year"ExpiresByType image/gif "access 1 year"ExpiresByType image/png "access 1 year"ExpiresByType text/css "access 1 month"ExpiresByType application/pdf "access 1 month"ExpiresByType application/javascript "access 1 month"ExpiresByType application/x-javascript "access 1 month"ExpiresByType image/x-icon "access 1 year"ExpiresDefault "access 2 days"</IfModule>
Gzip Sıkıştırması ile Sayfa Boyutlarını Küçültme
Gzip sıkıştırması, sunucunuzun web sitenizin dosyalarını (HTML, CSS, JavaScript) kullanıcıya göndermeden önce sıkıştırmasını sağlayan bir teknolojidir. Sıkıştırılmış dosyaların boyutu çok daha küçük olduğu için kullanıcıya daha hızlı iletilir ve tarayıcı tarafından açılır. Bu işlem, sayfa yükleme süresini %50 ila %70 oranında azaltabilir. Gzip sıkıştırmasını .htaccess üzerinden etkinleştirmek için mod_deflate modülünü kullanabilirsiniz.
| Dosya Türü | Sıkıştırılmamış Boyut (Örnek) | Gzip ile Sıkıştırılmış Boyut (Tahmini) | Kazanç |
|---|---|---|---|
| HTML | 100 KB | ~25 KB | ~75% |
| CSS | 150 KB | ~30 KB | ~80% |
| JavaScript | 250 KB | ~60 KB | ~76% |
<IfModule mod_deflate.c>AddOutputFilterByType DEFLATE text/plainAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xmlAddOutputFilterByType DEFLATE text/cssAddOutputFilterByType DEFLATE application/xmlAddOutputFilterByType DEFLATE application/xhtml+xmlAddOutputFilterByType DEFLATE application/rss+xmlAddOutputFilterByType DEFLATE application/javascriptAddOutputFilterByType DEFLATE application/x-javascript</IfModule>
Dosya Yükleme Sürelerini İyileştirmek İçin “Expires Headers” Kullanımı
“Expires Headers” (Son Kullanma Başlıkları), tarayıcı önbelleklemenin temelini oluşturan HTTP başlıklarıdır. Yukarıda “Tarayıcı Önbellekleme” başlığında verilen kod, aslında bu başlıkları ayarlamaktadır. Bu başlıklar, tarayıcıya bir dosyanın ne kadar süreyle önbellekte tutulması gerektiğini söyler. Örneğin, bir resim dosyası için “1 yıl” süre belirlediğinizde, tarayıcı o resmi 1 yıl boyunca yeniden sunucudan istemez. Bu, özellikle sık değişmeyen logo, ikon, CSS ve JavaScript dosyaları için sunucu yükünü azaltır ve sonraki sayfa görüntülemelerini hızlandırır.
“ETags” Kontrolünü Devre Dışı Bırakma
ETags (Entity Tags), tarayıcının bir dosyanın sunucudaki sürümünün değişip değişmediğini kontrol etmesi için kullanılan bir mekanizmadır. Tarayıcı, önbelleğindeki dosyanın ETag’i ile sunucudaki dosyanın ETag’ini karşılaştırır. Ancak, çoklu sunucu ortamlarında (load balancer kullanan büyük siteler gibi), ETag’ler sunucudan sunucuya farklılık gösterebilir. Bu durum, tarayıcının dosyayı gereksiz yere yeniden indirmesine neden olabilir. Eğer siteniz tek bir VDS üzerinde çalışmıyorsa veya performans sorunları yaşıyorsanız, ETags’i devre dışı bırakmak ve bunun yerine “Expires Headers”a güvenmek daha iyi bir strateji olabilir. ETags’i kapatmak için .htaccess dosyanıza aşağıdaki satırı ekleyebilirsiniz:
Header unset ETagFileETag None
.htaccess Dosyasını Yönetme ve Sorun Giderme
.htaccess dosyası, sitenizin işleyişi üzerinde büyük bir güce sahip olduğu için dikkatli bir şekilde yönetilmelidir. İçine eklenen hatalı bir kod veya hatta tek bir yazım yanlışı bile sitenizin tamamen erişilemez hale gelmesine neden olabilir. Bu nedenle, düzenleme yapmadan önce gerekli önlemleri almak ve olası sorunları nasıl çözeceğinizi bilmek hayati önem taşır.
.htaccess Dosyasını Düzenlemeden Önce Yapılması Gerekenler: Yedekleme
Kural 1: .htaccess dosyasını düzenlemeden önce mutlaka bir yedeğini alın. Bu, en önemli ve atlanmaması gereken adımdır. Bir sorunla karşılaştığınızda, çalışan son sürüme geri dönebilmek sizi büyük bir dertten kurtarır. Yedekleme işlemi son derece basittir:
- FTP istemciniz veya cPanel Dosya Yöneticisi ile sunucunuza bağlanın.
- Mevcut
.htaccessdosyasını bulun. - Dosyayı bilgisayarınıza indirin veya sunucu üzerinde adını
.htaccess_backupolarak değiştirerek kopyasını oluşturun.
Bu basit işlem, olası bir hatada sitenizi saniyeler içinde eski haline getirmenizi sağlar.
.htaccess Dosyasında Yapılan Hataların Yol Açtığı Sorunlar
Hatalı bir .htaccess yapılandırması, çeşitli ve genellikle siteyi tamamen bozan sorunlara yol açabilir. En yaygın karşılaşılan problemler şunlardır:
500 Internal Server Error (İç Sunucu Hatası) ve Çözümü
Bu, .htaccess ile ilgili en yaygın hatadır. Genellikle kodun içinde bir yazım hatası (syntax error), tanınmayan bir komut veya modülün sunucuda aktif olmamasından kaynaklanır. Örneğin, <IfModule mod_rewrite.c> bloğu olmadan bir RewriteRule kullanmaya çalışmak bu hataya neden olabilir.
Çözümü:
- Yedeği Geri Yükleyin: En hızlı ve en güvenli çözüm, düzenlemeden önce aldığınız yedeği geri yüklemektir. Hatalı dosyayı silin ve yedeğin adını tekrar
.htaccessolarak değiştirin. - Son Eklemenizi Kontrol Edin: Eğer yedeğiniz yoksa, dosyayı açın ve en son eklediğiniz kod bloğunu silerek kaydedin. Site tekrar çalışırsa, sorun o kod bloğundadır. Kodu dikkatlice kontrol edin, yazım hatalarını düzeltin veya alternatif bir kod arayın.
Yönlendirme Döngüleri (Redirection Loops)
Bir URL‘yi kendisine veya birbiriyle çakışan iki farklı kural nedeniyle sürekli başka bir URL’ye yönlendiren hatalı bir yönlendirme yapılandırması, “ERR_TOO_MANY_REDIRECTS” hatasına neden olur. Örneğin, A sayfasını B’ye, B sayfasını da tekrar A’ya yönlendirmek bir döngü oluşturur. Bu sorun genellikle www ve non-www yönlendirmeleri ile HTTP’den HTTPS’ye yönlendirme kurallarının bir arada yanlış yapılandırılmasıyla ortaya çıkar.
Çözümü: .htaccess dosyanızdaki tüm Redirect ve RewriteRule satırlarını dikkatlice inceleyin. Birbiriyle çakışan veya sonsuz bir döngüye neden olabilecek kuralları bulun ve düzeltin. Genellikle sorunu bulana kadar yönlendirme kurallarını tek tek devre dışı bırakarak (satırın başına # işareti koyarak) test etmek işe yarar.
Site Erişilebilirlik Sorunları
Bazen .htaccess’te yapılan bir hata, sitenin tamamını değil ama belirli bölümlerini veya belirli dosya türlerini (resimler, CSS dosyaları vb.) erişilemez hale getirebilir. Örneğin, hotlinking önleme kodunu yanlış yapılandırırsanız, kendi sitenizdeki resimlerin bile görünmesini engelleyebilirsiniz. Benzer şekilde, hatalı bir dosya engelleme kuralı, sitenizin çalışması için gerekli olan bir dosyaya erişimi kesebilir.
Çözümü: Sorunun hangi bölüm veya dosya türünde olduğunu tespit edin ve .htaccess dosyanızda bu alanları etkileyebilecek kuralları (örneğin, <Files> veya RewriteRule blokları) kontrol edin. Sorunlu kuralı geçici olarak devre dışı bırakarak sitenin düzelip düzelmediğini test edin.
.htaccess Dosyasını Varsayılan WordPress Ayarlarına Geri Döndürme
Eğer yaptığınız tüm değişiklikler sitenizde çözemediğiniz sorunlara yol açtıysa ve temiz bir başlangıç yapmak istiyorsanız, .htaccess dosyasını WordPress’in varsayılan ayarlarına döndürmek en kolay yoldur. Bu işlem, eklediğiniz tüm güvenlik, performans ve yönlendirme kurallarını kaldıracak, sadece kalıcı bağlantıların çalışması için gereken temel kodları bırakacaktır.
- FTP veya Dosya Yöneticisi ile sunucunuza bağlanın.
- Mevcut
.htaccessdosyasını silin veya adını.htaccess_eskiolarak değiştirin. - WordPress yönetici panelinize giriş yapın.
- Ayarlar > Kalıcı Bağlantılar menüsüne gidin.
- Hiçbir ayarı değiştirmeden sayfanın altındaki “Değişiklikleri Kaydet” butonuna tıklayın.
Bu işlem, WordPress’in temiz ve varsayılan bir .htaccess dosyasını otomatik olarak yeniden oluşturmasını sağlayacaktır. Siteniz tekrar erişilebilir hale geldikten sonra, eklemek istediğiniz kuralları tek tek ve test ederek yeniden ekleyebilirsiniz.
Güvenli ve Hızlı WordPress Hosting İçin Neden İHS Telekom’u Tercih Etmelisiniz?
Bu makalede .htaccess dosyası üzerinden yapabileceğiniz sayısız güvenlik ve performans optimizasyonunu inceledik. Ancak tüm bu ayarların etkin bir şekilde çalışabilmesi, temelinde sağlam, güvenli ve modern bir hosting altyapısı gerektirir. İşte bu noktada İHS Telekom, WordPress siteniz için ihtiyaç duyduğunuz güçlü temeli sunar. Optimize edilmiş sunucu yapılandırmaları, güncel yazılımlar ve proaktif güvenlik önlemleri ile İHS Telekom’un WordPress hosting çözümleri, .htaccess ile yaptığınız ince ayarların tam potansiyeline ulaşmasını sağlar. Sitenizin hızı ve güvenliği için sadece .htaccess ayarlarına güvenmek yerine, işini bilen bir hosting ortağıyla çalışmak, size hem zaman kazandırır hem de web sitenizin kesintisiz ve sorunsuz çalışmasını garanti altına alır. Güçlü bir altyapı, yaptığınız optimizasyonların gerçek anlamda fark yaratmasını sağlayan en önemli unsurdur.
