Tüm barındırma hizmetlerinde 15% tasarruf edin

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bölüm
LiteSpeed ​​Barındırma Yönetim

Apache Sunucularında Yönlendirmeleri Yönetmeye İlişkin Tam Kılavuz: .htaccess Aracılığıyla Yönlendirme

Yönlendirmeler, bir web yöneticisinin araç setindeki en kritik araçlardan biridir. Site URL’lerinizi yeniden yapılandırıyor, yeni bir etki alanına geçiş yapıyor veya HTTPS’yi zorunlu kılıyor olsanız da, yönlendirmeleri doğru şekilde ayarlamak, arama motoru sıralamalarınızı korumak ile tamamen kaybetmek arasındaki farkı oluşturabilir. Apache tabanlı sunucularda, .htaccess dosyası, global sunucu yapılandırmasına dokunmadan güçlü ve esnek yönlendirmeler uygulamak için tercih edilen çözümdür.

Bu kapsamlı kılavuzda, .htaccess yönlendirmeleri hakkında bilmeniz gereken her şeyi — temellerden ileri konfigürasyonlara kadar — ele alacağız, böylece web sitesi trafiğinizi güvenle yönetebilirsiniz.

1. .htaccess Nedir?

.htaccess dosyası — kısaca hypertext access anlamına gelir — Apache web sunucuları tarafından kullanılan bir dizin düzeyinde yapılandırma dosyasıdır. Global sunucu yapılandırma dosyalarından (httpd.conf gibi) farklı olarak, bu dosyalar root düzeyinde erişim gerektirir ve değişiklikleri uygulamak için sunucunun yeniden başlatılması gerekir, .htaccess dizin düzeyinde çalışır ve kaydedilir kaydedilmez hemen etkili olur.

.htaccess’in temel özellikleri:

  • Kapsam: Ayarlar, dosyanın yerleştirildiği dizin ve tüm alt dizinleri için geçerlidir.
  • Yeniden başlatma gerekmez: Değişiklikler Apache sunucusunu yeniden başlatmadan anında etkili olur.
  • Çok yönlülük: Yönlendirmelerin ötesinde, .htaccess URL yeniden yazma, erişim kontrolü, özel hata sayfaları, MIME türü yapılandırması, önbelleğe alma kuralları ve daha fazlasını işleyebilir.
  • Yerleşim: Genellikle web sitenizin kök dizinine (public_html veya www) yerleştirilir.

> Önemli: .htaccess işlevini görmesi için Apache sunucusunun sunucu yapılandırmasında AllowOverride değerinin All olarak ayarlanmış olması gerekir. Yönetilen bir barındırma ortamında iseniz, bu genellikle varsayılan olarak etkindir.

Kendi sunucunuzu çalıştırıyorsanız, ister VPS Hosting planında ister Dedicated Server‘da olsun, Apache’nin yapılandırması üzerinde tam kontrole sahip olacaksınız ve gerektiğinde AllowOverride etkinleştirebilirsiniz.

2. Neden Yönlendirmeler Kullanılır?

Yönlendirmeler, web sitesi yönetiminde birden fazla kritik amaca hizmet eder. İşte en yaygın kullanım durumlarının bir dökümü:

URL Yapısı Değişiklikleri

Web sitenizi yeniden yapılandırdığınızda — örneğin, /old-page.html adresinden /new-page.html adresine geçiş yaptığınızda — eski URL’ye işaret eden yer imlerine veya bağlantılara sahip kullanıcılar 404 Not Found hatasıyla karşılaşacaktır. Bir yönlendirme onları otomatik olarak doğru hedefe iletir.

Alan Adı Geçişi

Web sitenizi yeni bir alan adına taşıyor musunuz? Uygun yönlendirmeler olmadan, eski alan adınıza gelen tüm trafik basitçe kaybolacaktır. Alan adı düzeyindeki yönlendirmeler, her ziyaretçinin ve her arama motoru tarayıcısının yeni alan adına sorunsuzca iletilmesini sağlar.

SEO Değeri Koruması

Arama motorları, belirli URL’lere yetki ve sıralama sinyalleri atar. İçerik uygun bir yönlendirme olmadan taşındığında, bu sinyaller kaybolur. Doğru şekilde uygulanmış bir 301 yönlendirmesi, eski URL’den yeni URL’ye bağlantı öz sermayesinin çoğunu (genellikle “PageRank” olarak adlandırılır) iletir ve organik arama sıralamalarınızı korur.

Kanonik URL’leri Zorunlu Kılma

Yinelenen içerik yaygın bir SEO sorunudur. Örneğin, http://yoursite.com, https://yoursite.com, http://www.yoursite.com ve https://www.yoursite.com aynı içeriği sunabilir ve arama motorlarını karıştırabilir. Yönlendirmeler, URL’nizin tek bir kanonik sürümünü zorunlu kılar.

HTTPS’yi Zorunlu Kılma

Alan adınıza bir SSL Sertifikası yüklediyseniz, tüm ziyaretçilerin otomatik olarak sitenizin güvenli HTTPS sürümüne sunulmasını sağlamak isteyeceksiniz. Bir .htaccess yönlendirmesi bunu otomatik olarak işler.

İyileştirilmiş Kullanıcı Deneyimi

Eski bağlantılara tıklayan veya eski URL’leri yazan kullanıcılar hiçbir zaman ölü bir uçla karşılaşmamalıdır. Yönlendirmeler, her zaman doğru sayfaya iniş sağlayarak, sıçrama oranlarını azaltır ve genel memnuniyeti artırır.

3. Yönlendirme Türleri Açıklandı

HTTP yönlendirmeleri durum kodları tarafından tanımlanır. Hangi kodun hangi durumda kullanılacağını anlamak, yönlendirmeleri doğru şekilde uygulamanın temelini oluşturur.

Durum KoduAdKullanım Durumu
301Kalıcı Yönlendirmeİçerik kalıcı olarak yeni bir URL’ye taşındı
302Geçici Yönlendirme (Bulundu)İçerik geçici olarak taşındı
303Diğerini GörPOST isteğine yanıt; GET kaynağına yönlendirme
307Geçici YönlendirmeGeçici taşıma; yöntem korunur
308Kalıcı YönlendirmeKalıcı taşıma; yöntem korunur

301 Yönlendirme — Kalıcı Yönlendirme

301 yönlendirmesi SEO ve web sitesi yönetiminde en yaygın kullanılan yönlendirmedir. Tarayıcılara ve arama motorlarına orijinal URL’deki içeriğin kalıcı olarak yeni bir konuma taşındığını bildirir. Arama motorları, dizinlerini yeni URL’yi yansıtacak şekilde güncelleyecek ve orijinal sayfanın sıralama otoritesinin çoğunu aktaracaktır.

301’i şu durumlarda kullanın:

  • Bir sayfayı kalıcı olarak taşıdığınızda veya URL’lerinizi yeniden yapılandırdığınızda
  • Yeni bir etki alanına geçiş yaptığınızda
  • Yinelenen içeriği birleştirdiğinizde
  • www ve non-www veya HTTP ve HTTPS’yi zorunlu kıldığınızda

302 Yönlendirme — Geçici Yönlendirme

302 yönlendirmesi tarayıcılara ve arama motorlarına taşımanın geçici olduğunu ve orijinal URL’nin sonunda geri yükleneceğini söyler. Arama motorları genellikle 302 yönlendirmeleri için bağlantı öz sermayesini aktarmaz ve orijinal URL’yi dizine almaya devam eder.

302’yi şu durumlarda kullanın:

  • Geçici bir promosyon veya A/B testi çalıştırdığınızda
  • Bakım yapıyor ve kullanıcıları geçici olarak yönlendiriyorsunuz
  • Orijinal URL yakın gelecekte etkin kullanıma dönecekse

> Yaygın hata: Birçok geliştirici aslında kalıcı bir yönlendirme amaçladıklarında 302 yönlendirmelerini kullanır. SEO cezalarından ve arama motoru tarayıcılarını kafa karıştırmaktan kaçınmak için kalıcı taşımalar için her zaman 301’i kullanın.

4. .htaccess Aracılığıyla Yönlendirmeleri Ayarlama

Herhangi bir değişiklik yapmadan önce, mevcut .htaccess dosyanızın bir yedeklemesini oluşturun. Tek bir sözdizimi hatası bir 500 Internal Server Error neden olabilir ve sitenizi çevrimdışı bırakabilir.

.htaccess Dosyanıza Erişim

.htaccess dosyanıza şu yollarla erişebilirsiniz:

  • FTP/SFTP istemcisi (örn. FileZilla) — kök dizinine gidin
  • Dosya Yöneticisi barındırma kontrol panelinizde (cPanel, DirectAdmin, vb.)
  • SSH terminalinano /var/www/html/.htaccess

> Not: .htaccess gizli bir dosyadır. FTP istemcinizin veya dosya yöneticininizin gizli dosyaları (nokta ile başlayan dosyalar) gösterecek şekilde yapılandırıldığından emin olun.

Tek Bir Sayfayı Yönlendirme

En basit yönlendirme kullanım durumu, bir belirli URL’yi başka bir URL’ye iletmektir. Redirect yönergesini kullanın:

Redirect 301 /old-page.html https://www.yoursite.com/new-page.html

Açıklama:

    Redirect — basit yönlendirmeler için Apache yönergesi
    301 — HTTP durum kodu (kalıcı yönlendirme)
    /old-page.html — eski URL yolu (belge köküne göre)
    https://www.yoursite.com/new-page.html — tam hedef URL
    
    Geçici bir yönlendirme için, 301 yerine 302 yazın:
    Redirect 302 /promo-page.html https://www.yoursite.com/sale.html
    Birden Fazla Belirli Sayfayı Yönlendirme
    Birkaç ayrı sayfayı yönlendirmeniz gerekiyorsa, her yönlendirmeyi ayrı bir satırda listeleyin:
    Redirect 301 /old-page-1.html https://www.yoursite.com/new-page-1.html
    Redirect 301 /old-page-2.html https://www.yoursite.com/new-page-2.html
    Redirect 301 /old-page-3.html https://www.yoursite.com/new-page-3.html
    Tüm Bir Alanı Yönlendirme
    Tüm web sitenizi yeni bir alana taşırken, URL yollarını koruyarak tüm trafiği yönlendirmek için mod_rewrite kullanın:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^olddomain.com$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^www.olddomain.com$ [NC]
    RewriteRule ^(.*)$ https://www.newdomain.com/$1 [L,R=301]
    Açıklama:
    
    RewriteEngine On — mod_rewrite Apache modülünü etkinleştirir
    RewriteCond %{HTTP_HOST} ^olddomain.com$ — olddomain.com isteklerini eşleştirir
    [NC] — büyük/küçük harfe duyarsız eşleştirme
    [OR] — koşullar arasında mantıksal VEYA (www veya www olmayan eşleşir)
    RewriteRule ^(.*)$ https://www.newdomain.com/$1 — tüm trafiği yönlendirir, URL yolunu korur ($1 alanından sonraki her şeyi yakalar)
    [L,R=301] — L bu kuralın işlenecek son kural olduğu anlamına gelir; R=301 kalıcı bir yönlendirme belirtir
    
    www’den Non-www’ye Yönlendirme
    www veya non-www seçimi kanonik alan olarak önemli bir SEO kararıdır. Seçim yaptıktan sonra, tüm trafiği tercih edilen sürüme yönlendirin.
    www → non-www yönlendirmesi:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.yoursite.com$ [NC]
    RewriteRule ^(.*)$ https://yoursite.com/$1 [L,R=301]
    Non-www → www yönlendirmesi:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^yoursite.com$ [NC]
    RewriteRule ^(.*)$ https://www.yoursite.com/$1 [L,R=301]
    > İpucu: Tutarlı olun. Bir kanonik sürüm seçin ve ona sadık kalın. www ve non-www arasındaki tutarsızlık yinelenen içerik sorunları oluşturur ve SEO sinyallerinizi zayıflatır.
    HTTP’den HTTPS’ye Yönlendirme
    Bir SSL sertifikası yükledikten sonra, tüm trafiği güvenli HTTPS protokolünü kullanmaya zorlamalısınız. Bu, hem güvenlik hem de SEO açısından en önemli yönlendirmelerden biridir, çünkü Google HTTPS’yi bir sıralama sinyali olarak kullanır.
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Açıklama:
    
    RewriteCond %{HTTPS} off — mevcut isteğin HTTPS kullanmadığını kontrol eder
    %{HTTP_HOST} — ana bilgisayar adını dinamik olarak ekler (herhangi bir alan için çalışır)
    %{REQUEST_URI} — tam URL yolunu ve sorgu dizesini korur
    
    Birleştirilmiş HTTP’den HTTPS’ye + non-www’den www’ye yönlendirmesi:
    RewriteEngine On
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} ^www. [NC]
    RewriteRule ^ https://yoursite.com%{REQUEST_URI} [L,R=301]
    Bir Dizini Yönlendirme
    Tüm bir dizini yeni bir konuma yönlendirmek için:
    RedirectMatch 301 ^/old-directory/(.*)$ https://www.yoursite.com/new-directory/$1
    Bu RedirectMatch kullanır, normal ifadeleri destekler ve belirli bir dizin içindeki tüm URL’leri eşleştirmenize ve yönlendirmenize izin verirken dosya yolunu korur.
    Sorgu Dizesine Dayalı Yönlendirme
    Bazen belirli sorgu parametreleri içeren URL’leri yönlendirmeniz gerekir:
    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^id=123$
    RewriteRule ^page.php$ https://www.yoursite.com/new-page/? [L,R=301]
    Hedef URL’deki sondaki ? orijinal sorgu dizesini yönlendirilen URL’den kaldırır.
    5. Gelişmiş Yönlendirme Senaryoları
    Bakım Sayfasına Yönlendirme
    Planlanan bakım sırasında, tüm ziyaretçileri geçici bir bakım sayfasına yönlendir ve kendi IP adresinin geçmesine izin ver:
    RewriteEngine On
    RewriteCond %{REMOTE_ADDR} !^123.456.789.000$
    RewriteCond %{REQUEST_URI} !/maintenance.html$
    RewriteRule ^(.*)$ /maintenance.html [L,R=302]
    123.456.789.000 yerine gerçek IP adresini koy.
    Dizinlerde Sondaki Eğik Çizgiyi Zorla
    Tutarsız sondaki eğik çizgiler yinelenen içerik oluşturabilir. Dizin URL’lerine sondaki eğik çizgiyi zorla:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule ^(.*)$ /$1/ [L,R=301]
    Yönlendirmeli Özel 404 Hata Sayfası
    Geleneksel bir yönlendirme olmasa da, özel bir 404 sayfası yapılandırmak, bozuk bağlantılarla karşılaşıldığında kullanıcı deneyimini iyileştirir:
    ErrorDocument 404 /404.html
    6. .htaccess Yönlendirmeleri için En İyi Uygulamalar
    Bu en iyi uygulamaları takip etmek, yaygın sorunlardan kaçınmanıza ve yönlendirmelerinizin optimal performans göstermesini sağlamanıza yardımcı olacaktır.
    ✅ Kalıcı Değişiklikler için Her Zaman 301 Kullanın
    İçerik kalıcı olarak taşındığında her zaman 301 yönlendirmesi kullanın. Bu, arama motorlarının sıralama otoritesini yeni URL’ye aktarmasını ve dizinlerini buna göre güncellemesini sağlar.
    ✅ Düzenlemeden Önce Yedek Alın
    .htaccess dosyanızda herhangi bir değişiklik yapmadan önce, yerel makinenize bir kopya indirin. Bir söz dizimi hatası 500 Internal Server Error neden olabilir ve sitenizi anında çevrimdışı hale getirebilir.
    ✅ Uygulamadan Sonra Tüm Yönlendirmeleri Test Edin
    Şu araçları kullanın:
    
    Redirect Checker (redirect-checker.org)
    Screaming Frog SEO Spider — sitenizi tarar ve yönlendirme zincirlerini tanımlar
    Google Search Console — Google’ın yönlendirmelerinizi nasıl işlediğini izler
    curl terminal komutu: curl -I https://yoursite.com/old-page.html

    ✅ Yönlendirme Zincirlerinden Kaçının

    Yönlendirme zinciri, URL A’nın URL B’ye yönlendirilmesi ve URL B’nin URL C’ye yönlendirilmesi durumunda oluşur. Her atlama gecikme ekler ve zincir boyunca aktarılan SEO değerini azaltır. Her zaman doğrudan son hedefe yönlendirin.

    Kötü:

    /page-a → /page-b → /page-c

    İyi:

    /page-a → /page-c
    /page-b → /page-c

    ✅ Yönlendirme Döngülerinden Kaçının

    Yönlendirme döngüsü, URL A’nın URL B’ye yönlendirilmesi ve URL B’nin geri URL A’ya yönlendirilmesi durumunda oluşur. Bu, tarayıcı hatasına neden olur ve sayfayı erişilemez hale getirir. Dağıtmadan önce her zaman yönlendirme mantığınızı doğrulayın.

    ✅ .htaccess Dosyasını Hafif Tutun

    Sunucunuza yapılan her istek, Apache’nin .htaccess dosyasını okumasına neden olur. Düzinelerce gereksiz kuralla şişirilmiş bir dosya sunucunuzu yavaşlatabilir. Yalnızca aktif olarak ihtiyaç duyduğunuz kuralları tutun.

    ✅ Her Yerde HTTPS Kullanın

    Henüz yapmadıysanız, bir SSL sertifikası yükleyin ve tüm HTTP trafiğini HTTPS’ye yönlendirin. Bu, temel bir güvenlik gereksinimi ve doğrulanmış bir Google sıralama faktörüdür. AlexHost, etki alanlarınız arasında hızlı bir şekilde dağıtılabilen SSL Sertifikaları sunmaktadır.

    ✅ Google Search Console’da Yönlendirmeleri İzleyin

    Yönlendirmeleri uyguladıktan sonra — özellikle bir etki alanı geçişinden sonra — Google Search Console’un Kapsam ve URL İncelemesi raporlarını izleyerek Google’ın yeni URL’lerinizi doğru şekilde dizine alıp almadığını kontrol edin.

    7. Yaygın Yönlendirme Sorunlarını Giderme

    500 Internal Server Error

    Neden: .htaccess içinde söz dizimi hatası

    Çözüm: .htaccess söz dizimini dikkatle gözden geçirin. Eksik bir boşluk veya parantez bile bu hataya neden olabilir. Yedeklerinizi geri yükleyin ve değişiklikleri birer birer yeniden uygulayın.

    Yönlendirme Çalışmıyor

    Neden: mod_rewrite etkinleştirilmemiş olabilir veya AllowOverride değeri All olarak ayarlanmamış olabilir

    Çözüm: mod_rewrite etkinleştirildiğinden emin olun (Ubuntu/Debian’da a2enmod rewrite) ve AllowOverride All değeri Apache sanal host yapılandırmanızda ayarlandığından emin olun.

    Yönlendirme Döngüsü (ERR_TOO_MANY_REDIRECTS)

    Neden: İki veya daha fazla yönlendirme kuralı birbirini gösteriyor

    Çözüm: Kurallarınızı dikkatle gözden geçirin. HTTPS yönlendirmeleri için RewriteCond değerinin %{HTTPS} durumunu doğru şekilde kontrol ettiğinden emin olun. Bazı sunucu ortamları (örneğin, yük dengeleyicinin arkasında) %{HTTP:X-Forwarded-Proto} kontrolünü gerektirebilir.

    Yönlendirme Sorgu Dizelerini Yanlış Geçiriyor

    Neden: Sorgu dizeleri beklendiği gibi işlenmiyor

    Çözüm: %{QUERY_STRING} kullanın RewriteCond içinde ve sorgu dizelerini gerektiği gibi kaldırmak veya korumak için hedef URL’ye ? ekleyin.

    .htaccess Dosyası Okunmuyor

    Neden: Dosya yanlış adlandırılmış veya yanlış dizine yerleştirilmiş olabilir

    Çözüm: Dosyanın tam olarak .htaccess (başında nokta ve dosya uzantısı olmadan) olarak adlandırıldığından ve doğru dizine yerleştirildiğinden emin olun.

    8. Sonuç

    .htaccess yönlendirmelerinde uzmanlaşmak, Apache tabanlı barındırma ortamlarında çalışan herhangi bir web geliştirici, SEO profesyoneli veya sistem yöneticisi için gerekli bir beceridir. Tek bir sayfayı yönlendiriyor olsanız, tüm bir etki alanını taşıyor olsanız, HTTPS’yi zorunlu kılıyor olsanız veya kanonik URL’lerinizi birleştiriyor olsanız, .htaccess dosyası, global sunucu yapılandırma dosyalarına erişim gerektirmeden tüm bunları işlemek için güçlü ve esnek bir mekanizma sağlar.

    Ana çıkarımlar:

    • 301 yönlendirmelerini kullanın SEO değerini korumak için kalıcı taşımalar için
    • 302 yönlendirmelerini kullanın yalnızca gerçekten geçici durumlar için
    • Her zaman yedek alın .htaccess dosyasının düzenlemeden önce
    • Yönlendirme zincirlerinden ve döngülerinden kaçının performans ve SEO bütünlüğünü korumak için
    • Her yönlendirmeyi test edin uygulamadan sonra güvenilir araçlar kullanarak

    Barındırma ortamınızın kalitesi, yönlendirmelerin ne kadar etkili bir şekilde çalıştığında önemli bir rol oynar. Hızlı, iyi yapılandırılmış bir sunucu, yönlendirme işlemesinin kullanıcılarınızın deneyimine minimal gecikme eklemesini sağlar. Tam Apache kontrolü ile esnek bir VPS Hosting ortamına ihtiyacınız olsun, yüksek trafikli web siteleri için güçlü bir Dedicated Server‘a ihtiyacınız olsun veya .htaccess desteği yerleşik olan yönetimi kolay bir Shared Web Hosting planına ihtiyacınız olsun, AlexHost ihtiyaçlarınızı desteklemek için altyapıya sahiptir.

    Birden fazla web sitesi veya etki alanını yönetiyorsanız, tüm web altyapınızı bir güvenilir platform altında kolaylaştırmak için barındırmanızı AlexHost aracılığıyla Domain Registration ile eşleştirmeyi düşünün.

    Bu kılavuzda ele alınan teknikleri uygulayarak, ziyaretçilerinizin her zaman doğru sayfaya iniş yaptığından, arama motoru sıralamalarınızın her site değişikliğinde korunduğundan ve sunucunuzun gereksiz yönlendirme yükü olmadan verimli bir şekilde çalıştığından emin olacaksınız.