.htaccess yönlendirmeleri hakkında
Yönlendirmelere ne zaman ihtiyaç duyarsınız
Bir URL her değiştiğinde. Yeniden tasarım, yeniden yapılandırma, HTTPS’ye geçiş veya bir sayfanın başka bir sayfayla birleştirilmesi — bunların her biri, kullanıcıların ve arama motorlarının hâlâ sakladığı eski bir adres bırakır.
Bir yönlendirme, kullanıcıları yeni sayfaya gönderir ve doğru şekilde yapıldığında eski URL’nin kazandığı sıralama sinyallerini taşır. Bunu atlayın; bu sinyaller, eski bir bağlantıyı takip eden herkesle birlikte boşa gider.
Bu oluşturucu, eski ve yeni URL’lerden oluşan bir listeyi, bunu gerçekleştiren .htaccess kurallarına dönüştürür.
Hangi 3xx kodu kullanılmalı?
301, taşıma işleminin kalıcı olduğunu belirtir. Arama motorları eski URL’nin sinyallerini yenisine aktarır ve sonunda eski adresi dizinlerinden çıkarır. Neredeyse her durumda istediğiniz şey budur.
302, taşınmanın geçici olduğunu belirtir. Eski URL dizinde kalır ve sinyallerini korur; bu, bakım sayfası veya sezonluk bir promosyon için doğru, diğer her şey için yanlıştır. Aylarca yerinde bırakılan bir 302, sıralamaları kaybetmenin daha sessiz yollarından biridir; çünkü hiçbir şey bozuk görünmez.
307 ve 308, 302 ve 301’in daha yeni eşdeğerleridir. Arama motorları bunlara aynı şekilde davranır; aralarındaki fark tekniktir: özgün isteğin yöntemini korurlar. Böylece bir form POST isteği GET’e dönüştürülmek yerine yeni URL’ye POST olarak ulaşır. Bu, API’ler ve form işleyicileri için önemlidir; sıradan sayfalar içinse nadiren önem taşır. Apache’nin 308 sunabilmesi için 2.4 veya sonraki bir sürüm gerekir.
3xx aralığının geri kalanı bunun için değildir. 300 ve 305 pratikte kullanılmaz, 304 bir yönlendirme yerine önbelleğe alma yanıtıdır ve 303, bir form gönderildikten sonra tarayıcıyı bir onay sayfasına göndermek için kullanılır; bunların hiçbiri bir yönlendirme dosyasına ait değildir.
Eşleştirmenin gerçekte nasıl çalıştığı
Yönlendirme, yolun tamamı yerine yolun başlangıcıyla eşleşir. /blog için bir kural, kendileri için ayrıca hiçbir şey listelenmemiş olsa bile /blog/post ve /blog/category/thing adreslerini de kapsar. Bunu öğrendiğinizde kullanışlıdır; ancak bilmediğinizde şaşırtıcı olabilir, çünkü belirli bir kuralın üzerine yerleştirilen kapsamlı bir kural, belirli kuralı erişilemez hâle getirir.
Aynı davranış, bir alan adının tamamını taşımak için de kullanılır: eski adres olarak / içeren tek bir kural, sitedeki her sayfayı kapsar. Kuralı yeni alan adının köküne yönlendirdiğinizde, her URL de onu takip eder.
Redirect’in anlamadığı şey kalıplardır. Burada joker karakter yoktur; bu nedenle /* ifadesi gerçek bir yol olarak okunur ve hiçbir şeyle eşleşmez — bu işi zaten önek eşleştirme yapar. Gerçekten bir kalıba ihtiyaç duyduğunuzda RedirectMatch bunun yerine normal ifade kullanır ve yalnızca önek eşleştirme yeterli olmadığında başvurulmaya değerdir.
Yaygın hatalar
- Her şeyi ana sayfaya yönlendirmek; bu, soft 404 olarak değerlendirilir ve kimseye fayda sağlamaz.
- Zincirler: A, B’ye; B de C’ye yönlendirir. Her eski URL’yi doğrudan nihai hedefe yönlendirin.
- Döngüler: iki kural trafiği, tarayıcı vazgeçene kadar karşılıklı olarak birbirine yönlendirir.
- Eski sayfanın makul bir alternatifi olmayan bir sayfaya yönlendirme yapılması.
- .htaccess dosyasını yedek almadan düzenlemek. Bir sözdizimi hatası tüm siteyi erişilemez hâle getirir.
Bu kuralların nereye eklenmesi gerekir
.htaccess, sitenizin kök dizininde bulunan bir Apache yapılandırma dosyasıdır. LiteSpeed de bu dosyayı okur; Nginx ise okumaz ve sunucu yapılandırmasında kendi söz dizimini kullanır.
Kurallar sırayla uygulanır; bu nedenle özel yönlendirmeleri genel yönlendirmelerin üzerine yerleştirin. Değişiklik yapmadan önce çalışan dosyanın bir kopyasını saklayın; çünkü buradaki bir hata sessizce başarısız olmak yerine her sayfa için 500 hatası döndürür.
Bir avuç URL için bu dosya doğru yerdir. Yüzlerce URL söz konusu olduğunda ise bir eklenti veya veritabanı tabanlı bir kural, kimsenin açmak istemediği bir dosyayı yönetmekten daha kolaydır.
.htaccess yönlendirme oluşturucuyu kullanma
Yönlendirme türünü seçin, taşınmış her URL için bir satır ekleyin ve kuralları indirin veya kopyalayın. Eski yollar alan adınıza göre görecelidir; hedefler ise tam URL olmalıdır.
Daha sonra birkaçını elle test edin. Tarayıcıda çalışan ancak yanlış durum kodunu döndüren bir yönlendirme, taşıması gereken sinyallerin size ulaşmasını yine de engeller.
Sonraki adımlar
Kuralların beklediğiniz gibi çalıştığını, her yönlendirmeyi takip eden ve durum kodlarını gösteren
yönlendirme denetleyicisi ile kontrol edin. Hedef URL'nin 200
durum kodu döndürdüğünü doğrulayın ve yapılandırmanızın geri kalanını
.htaccess oluşturucusuyla hazırlayın.