15%

Tüm Hosting Hizmetlerinde %15 indirim

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

Kodu kullanın:

Skills
Başlayın
30.10.2024

.htaccess ile Yönlendirme: Apache Sunucularında Yönlendirmeleri Yönetmeye Yönelik Eksiksiz Kılavuz

Yönlendirmeler, bir web yöneticisinin araç setindeki en kritik araçlar arasındadır. İster sitenizin URL’lerini yeniden yapılandırıyor, ister yeni bir alan adına geçiyor, ister HTTPS’yi zorunlu kılıyor olun, yönlendirmeleri doğru şekilde ayarlamak; arama motoru sıralamalarınızı korumak ile tamamen kaybetmek arasındaki farkı belirleyebilir. Apache tabanlı sunucularda .htaccess dosyası, global sunucu yapılandırmasına dokunmadan güçlü ve esnek yönlendirmeler uygulamak için başvurulan çözümdür.

Bu kapsamlı kılavuzda, web sitesi trafiğinizi güvenle yönetebilmeniz için .htaccess yönlendirmeleri hakkında temel bilgilerden gelişmiş yapılandırmalara kadar bilmeniz gereken her şeyi ele alacağız.

İçindekiler

  1. .htaccess Nedir?
  2. Neden Yönlendirme Kullanılır?
  3. Yönlendirme Türleri Açıklandı
  4. .htaccess ile Yönlendirmeler Nasıl Kurulur
  5. Gelişmiş Yönlendirme Senaryoları
  6. .htaccess Yönlendirmeleri için En İyi Uygulamalar
  7. Yaygın Yönlendirme Sorunlarını Giderme
  8. Sonuç

1. .htaccess Nedir? {#what-is-htaccess}

.htaccess dosyası — hypertext access kısaltması — Apache web sunucuları tarafından kullanılan dizin düzeyinde bir yapılandırma dosyasıdır. Değişiklikleri uygulamak için kök düzeyinde erişim ve sunucu yeniden başlatması gerektiren global sunucu yapılandırma dosyalarının (httpd.conf gibi) aksine, .htaccess dizin düzeyinde çalışır ve kaydedildiği anda geçerli 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 sunucusu yeniden başlatılmadan anında geçerli 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ı yönetebilir.
  • Yerleşim: Genellikle web sitenizin kök dizinine (public_html veya www) yerleştirilir.

> Önemli: .htaccess dosyasının çalışabilmesi için Apache sunucusunun sunucu yapılandırmasında AllowOverride değerinin All olarak ayarlanmış olması gerekir. Yönetilen bir barındırma ortamındaysanız bu genellikle varsayılan olarak etkinleştirilmiştir.

Kendi sunucunuzu çalıştırıyorsanız, ister bir VPS Hosting planında ister bir Dedicated Server üzerinde olun, Apache’nin yapılandırması üzerinde tam kontrole sahip olacak ve AllowOverride özelliğini gerektiği gibi etkinleştirebileceksiniz.

2. Neden Yönlendirme Kullanılır? {#why-use-redirects}

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

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ş yaparken — eski URL’ye yer işareti koymuş veya bağlantı oluşturmuş 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 kaybolup gidecektir. Alan adı düzeyindeki yönlendirmeler, her ziyaretçinin ve her arama motoru tarayıcısının yeni alan adına sorunsuz şekilde yönlendirilmesini sağlar.

SEO Değerinin Korunması

Arama motorları, belirli URL’lere otorite 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, bağlantı değerinin (“PageRank” olarak da bilinir) büyük çoğunluğunu eski URL’den yenisine aktararak organik arama sıralamalarınızı korur.

Kanonik URL’lerin Zorunlu Kılınması

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 sunarak arama motorlarını yanıltabilir. Yönlendirmeler, URL’nizin tek bir kanonik sürümünü zorunlu kılar.

HTTPS’nin Zorunlu Kılınması

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

Geliştirilmiş Kullanıcı Deneyimi

Eski bağlantılara tıklayan veya eski URL’leri yazan kullanıcılar hiçbir zaman çıkmaz sokakla karşılaşmamalıdır. Yönlendirmeler, her zaman doğru sayfaya ulaşmalarını sağlayarak hemen çıkma oranlarını azaltır ve genel memnuniyeti artırır.

3. Yönlendirme Türleri Açıklandı {#types-of-redirects}

HTTP yönlendirmeleri durum kodlarıyla tanımlanır. Hangi durumda hangi kodu kullanacağınızı anlamak, yönlendirmeleri doğru şekilde uygulamanın temelidir.

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ğerine BakPOST 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önlendirmesi — 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 büyük çoğunluğunu aktaracaktır.

301 kullanım durumları:

  • Bir sayfayı kalıcı olarak taşıdığınızda veya URL’lerinizi yeniden yapılandırdığınızda
  • Yeni bir alan adına geçiş yaptığınızda
  • Yinelenen içeriği birleştirdiğinizde
  • www ile www olmayan veya HTTP ile HTTPS arasında seçim yaptığınızda

302 Yönlendirmesi — 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 bildirir. Arama motorları genellikle 302 yönlendirmeleri için bağlantı değeri aktarmaz ve orijinal URL’yi dizine eklemeye devam eder.

302 kullanım durumları:

  • Geçici bir promosyon veya A/B testi yürütüyorsanız
  • Bakım yapıyor ve kullanıcıları geçici olarak yönlendiriyorsanız
  • Orijinal URL yakın gelecekte aktif kullanıma geri dönecekse

> Yaygın hata: Birçok geliştirici, aslında kalıcı bir yönlendirme amaçladıklarında 302 yönlendirmesi kullanır. SEO cezalarından ve arama motoru tarayıcılarını yanıltmaktan kaçınmak için kalıcı taşımalarda her zaman 301 kullanın.

4. .htaccess ile Yönlendirmeler Nasıl Kurulur {#how-to-set-up-redirects}

Herhangi bir değişiklik yapmadan önce, mevcut .htaccess dosyanızın yedeğini her zaman alın. Tek bir sözdizimi hatası 500 Internal Server Error hatasına neden olabilir ve sitenizi çevrimdışı bırakabilir.

.htaccess Dosyanıza Erişim

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

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

> Not: .htaccess gizli bir dosyadır. FTP istemcinizin veya dosya yöneticinizin 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, belirli bir 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 yazmanız yeterlidir:
    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ıra yazın:
    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 Alan Adını Yönlendirme
    Tüm web sitenizi yeni bir alan adına 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 adresine yapılan isteklerle eşleşir
    [NC] — büyük/küçük harf duyarsız eşleştirme
    [OR] — koşullar arasında mantıksal VEYA (www veya www olmayan ile eşleşir)
    RewriteRule ^(.*)$ https://www.newdomain.com/$1 — URL yolunu koruyarak tüm trafiği yönlendirir ($1 alan adından sonraki her şeyi yakalar)
    [L,R=301] — L bu son işlenecek kural anlamına gelir; R=301 kalıcı yönlendirmeyi belirtir
    
    —
    www’yi www Olmayan Adrese Yönlendirme
    Kanonik alan adınız olarak www ile www olmayan arasında seçim yapmak önemli bir SEO kararıdır. Seçim yapıldıktan sonra, tüm trafiği tercih edilen sürüme yönlendirin.
    www → www olmayan yönlendirme:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.yoursite.com$ [NC]
    RewriteRule ^(.*)$ https://yoursite.com/$1 [L,R=301]
    www olmayan → www yönlendirme:
    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 bağlı kalın. www ile www olmayan arasındaki tutarsızlık, yinelenen içerik sorunları yaratır ve SEO sinyallerinizi zayıflatır.
    —
    HTTP’yi 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; Google, HTTPS’yi bir sıralama sinyali olarak kullanmaktadı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 adı için çalışır)
    %{REQUEST_URI} — tam URL yolunu ve sorgu dizesini korur
    
    HTTP’den HTTPS’ye + www olmayandan www’ye birleşik yönlendirme:
    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, düzenli ifadeleri destekleyen RedirectMatch kullanır ve dosya yolunu korurken belirli bir dizindeki tüm URL’leri eşleştirip yönlendirmenize olanak tanır.
    —
    Sorgu Dizesine Göre Yönlendirme
    Bazen belirli sorgu parametreleri içeren URL’leri yönlendirmeniz gerekebilir:
    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^id=123$
    RewriteRule ^page.php$ https://www.yoursite.com/new-page/? [L,R=301]
    Hedef URL’nin sonundaki ?, yönlendirilen URL’den orijinal sorgu dizesini kaldırır.
    —
    5. Gelişmiş Yönlendirme Senaryoları {#advanced-redirect-scenarios}
    Bakım Sayfasına Yönlendirme
    Planlı bakım sırasında, kendi IP adresinizin geçişine izin verirken tüm ziyaretçileri geçici bir bakım sayfasına yönlendirin:
    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 adresinizi yazın.
    Dizinlerde Sondaki Eğik Çizgiyi Zorunlu Kılma
    Tutarsız sondaki eğik çizgiler yinelenen içerik oluşturabilir. Dizin URL’lerinde sondaki eğik çizgiyi zorunlu kılın:
    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 {#best-practices}
    Bu en iyi uygulamaları takip etmek, yaygın tuzaklardan kaçınmanıza ve yönlendirmelerinizin en iyi şekilde çalışmasını 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 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 kopyasını indirin. Bir sözdizimi hatası 500 Internal Server Error hatasına neden olarak sitenizi anında çevrimdışı bırakabilir.
    ✅ 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 tespit eder
    Google Search Console — Google’ın yönlendirmelerinizi nasıl işlediğini izler
    Terminalde curl komutu: curl -I https://yoursite.com/old-page.html

    ✅ Yönlendirme Zincirlerinden Kaçının

    Bir yönlendirme zinciri, A URL’si B URL’sine, B URL’si de C URL’sine yönlendirdiğinde oluşur. Her atlama gecikme ekler ve zincir boyunca aktarılan SEO değerini azaltır. Her zaman doğrudan nihai 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

    Bir yönlendirme döngüsü, A URL’si B URL’sine, B URL’si de A URL’sine geri yönlendirdiğinde oluşur. Bu, tarayıcı hatasına neden olur ve sayfayı erişilemez kılar. Yönlendirme mantığınızı dağıtmadan önce her zaman doğrulayın.

    ✅ .htaccess’i Sade Tutun

    Sunucunuza gelen her istek, Apache’nin .htaccess dosyasını okumasına neden olur. Onlarca gereksiz kural içeren şişirilmiş bir dosya sunucunuzu yavaşlatabilir. Yalnızca aktif olarak ihtiyaç duyduğunuz kuralları saklayın.

    ✅ 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 gerekliliği ve Google’ın onaylanmış bir sıralama faktörüdür. AlexHost, alan adlarınızda hızla dağıtılabilen SSL Sertifikaları sunmaktadır.

    ✅ Google Search Console’da Yönlendirmeleri İzleyin

    Yönlendirmeleri uyguladıktan sonra — özellikle alan adı geçişinin ardından — Google’ın yeni URL’lerinizi doğru şekilde dizine ekleyip eklemediğinden emin olmak için Google Search Console’un Kapsam ve URL İnceleme raporlarını izleyin.

    7. Yaygın Yönlendirme Sorunlarını Giderme {#troubleshooting}

    500 Dahili Sunucu Hatası

    Neden: .htaccess dosyasında sözdizimi hatası

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

    Yönlendirme Çalışmıyor

    Neden: mod_rewrite etkin olmayabilir veya AllowOverride değeri All olarak ayarlanmamış olabilir

    Çözüm: mod_rewrite özelliğinin etkin olduğundan (Ubuntu/Debian’da a2enmod rewrite) ve Apache sanal ana bilgisayar yapılandırmanızda AllowOverride All değerinin ayarlandığından emin olun.

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

    Neden: İki veya daha fazla yönlendirme kuralı birbirine işaret ediyor

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

    Yönlendirme Sorgu Dizelerini Yanlış Aktarıyor

    Neden: Sorgu dizeleri beklendiği gibi işlenmiyor

    Çözüm: RewriteCond içinde %{QUERY_STRING} kullanın 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ştaki nokta ve dosya uzantısı olmadan) olarak adlandırıldığından ve doğru dizine yerleştirildiğinden emin olun.

    8. Sonuç {#conclusion}

    .htaccess yönlendirmelerinde uzmanlaşmak, Apache tabanlı barındırma ortamlarında çalışan her web geliştiricisi, SEO uzmanı veya sistem yöneticisi için temel bir beceridir. İster tek bir sayfayı yönlendiriyor, ister tüm bir alan adını taşıyor, ister HTTPS’yi zorunlu kılıyor, ister kanonik URL’lerinizi birleştiriyor olun, .htaccess dosyası global sunucu yapılandırma dosyalarına erişim gerektirmeden tüm bunları yönetmek için güçlü ve esnek bir mekanizma sunar.

    Temel çıkarımlar:

    • SEO değerini korumak için kalıcı taşımalarda 301 yönlendirmesi kullanın
    • 302 yönlendirmesini yalnızca gerçekten geçici durumlar için kullanın
    • Düzenlemeden önce .htaccess dosyanızı her zaman yedekleyin
    • Performansı ve SEO bütünlüğünü korumak için yönlendirme zincirlerinden ve döngülerinden kaçının
    • Güvenilir araçlar kullanarak uygulamadan sonra her yönlendirmeyi test edin

    Barındırma ortamınızın kalitesi de yönlendirmelerin ne kadar etkili çalıştığında önemli bir rol oynar. Hızlı ve iyi yapılandırılmış bir sunucu, yönlendirme işleminin kullanıcılarınızın deneyimine minimum gecikme katmasını sağlar. İster tam Apache kontrolüne sahip esnek bir VPS Hosting ortamına, ister yüksek trafikli web siteleri için güçlü bir Dedicated Server‘a, ister .htaccess desteği yerleşik olarak gelen kolay yönetilebilir bir Shared Web Hosting planına ihtiyaç duyun, AlexHost ihtiyaçlarınızı karşılayacak altyapıya sahiptir.

    Birden fazla web sitesi veya alan adı yönetiyorsanız, tüm web altyapınızı tek bir güvenilir platform altında kolaylaştırmak için barındırma hizmetinizi AlexHost üzerinden Alan Adı Kaydı ile eşleştirmeyi düşünün.

    Bu kılavuzda ele alınan teknikleri uygulayarak ziyaretçilerinizin her zaman doğru sayfaya ulaşmasını, her site değişikliğinde arama motoru sıralamalarınızın korunmasını ve sunucunuzun gereksiz yönlendirme yükü olmadan verimli çalışmasını sağlayacaksınız.

    15%

    Tüm Hosting Hizmetlerinde %15 indirim

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

    Kodu kullanın:

    Skills
    Başlayın