Yönlendirme Kontrolü rehberi
Yönlendirme Kontrolü HTTP, HTTPS ve www varyantlarını son sayfaya kadar nasıl izler, 301, 302, 307, 308 ne demek, döngüler ve uzun zincirler nasıl düzeltilir.
Yönlendirmeler ne işe yarar
Yönlendirme, 3xx durum kodu taşıyan ve istemciye bunun yerine nereye gitmesi gerektiğini söyleyen bir Location başlığı içeren yanıttır. Tarayıcılar bu yanıtı kendiliğinden izler; arama motoru tarayıcıları ve HTTP kitaplıklarının çoğu da öyle. Siteler yönlendirmeleri ziyaretçileri HTTP'den HTTPS'e taşımak, tek bir sunucu adında (www ile ya da www olmadan) karar kılmak ve bir yeniden tasarımdan sonra eski URL'leri çalışır durumda tutmak için kullanır. Kısacası yönlendirme, adresin değiştiğini istemciye standart bir biçimde bildirmenin yoludur.
Her atlama bir gidiş-dönüş maliyeti doğurur ve eklenen her atlama, bir şeylerin ters gidebileceği yeni bir yerdir. Temiz bir kurulum son sayfaya bir ya da iki yönlendirmede ulaşır. Yönlendirme Kontrolü tüm zinciri gösterir; böylece ziyaretçilerin ve arama motoru tarayıcılarının tam olarak neyden geçtiğini görürsünüz. Zincirin her halkasını tek tek görmek, sorunun hangi katmandan, yani CDN'den mi, web sunucusundan mı yoksa uygulamadan mı kaynaklandığını anlamayı da kolaylaştırır.
Yönlendirme Kontrolü nasıl kullanılır
- Yönlendirme Kontrolü aracını açın ve bir alan adı girin, örneğin
example.com. - XGM kendi sunucusundan
http://example.com,https://example.com,http://www.example.comvehttps://www.example.comadreslerini ister ve her zinciri, meta refresh etiketleri dahil olmak üzere on atlamaya kadar izler. - Tablo bu dört adresin her birinin nerede bittiğini gösterir; ham zincirler ise her atlamayı durum kodu,
Locationbaşlığı ve yanıt süresiyle birlikte listeler. - Bulguları okuyun: farklı URL'lerde biten varyantlar, atlanabilecek atlamalar, meta refresh, geçici yönlendirmeler, döngüler, protokol düşüşleri ve hatalar.
- Yapılandırmayı düzeltin ve kontrolü kalıcı bağlantıdan yeniden çalıştırın. Tam rapor sekmesi ayrıca
http://vehttps://son URL'lerini karşılaştırır ve kanonik etiketi okur.
Her yönlendirme hedefi, başlangıç URL'siyle aynı kurallara göre denetlenir; bu yüzden özel bir ağın içine işaret eden zincir durdurulur. Bu hem XGM'yi korur hem de dahili bir sunucuya yapılan yönlendirmenin izlenmek yerine reddedilmiş olarak görünmesi anlamına gelir. Beklemediğiniz bir yerde böyle bir ret görürseniz, kuralın üretim ortamında sızdırdığı iç adresi bulmuşsunuz demektir.
Yönlendirme durum kodları
| Kod | Anlamı | Takip isteğindeki yöntem | Kullanım alanı |
|---|---|---|---|
| 301 Moved Permanently | Kalıcı | İstemciler POST'u GET'e çevirebilir | Sayfaların ve sunucu adlarının kalıcı taşınması |
| 308 Permanent Redirect | Kalıcı | Yöntem ve gövde korunur | API'lerin ve form hedeflerinin kalıcı taşınması |
| 302 Found | Geçici | İstemciler POST'u GET'e çevirebilir | Kısa süreli yönlendirmeler |
| 307 Temporary Redirect | Geçici | Yöntem ve gövde korunur | API'lerin geçici yönlendirilmesi |
| 303 See Other | Başka bir kaynağa GET ile gidilir | Her zaman GET | Form gönderiminden sonra |
Arama motorları kalıcı yönlendirmeleri, eski URL yerine hedef URL'yi dizine ekleme sinyali olarak değerlendirir. Geçici bir yönlendirme ise eski URL'yi kanonik adres olarak korur; HTTP'den HTTPS'e geçişte ya da alan adı değişikliğinde bu neredeyse hiçbir zaman istediğiniz sonuç değildir. Araç geçici yönlendirmeleri ayrıca not eder; böylece bunların bilinçli bir tercih mi yoksa unutulmuş bir geçici çözüm mü olduğuna siz karar verirsiniz.
Bulgular ne anlama gelir
| Bulgu | Önem | Yapılacak |
|---|---|---|
| Yönlendirme yok | Geçti | URL doğrudan yanıt veriyor. http:// için bu, HTTPS yönlendirmesinin bulunmadığı anlamına gelir; son URL bulgusuna bakın. |
| Erişilebilen tüm varyantlar şurada bitiyor … | Geçti | Dört giriş URL'si de döngü ya da meta refresh olmadan tek bir son URL'ye ulaşıyor. |
| Varyantlar n farklı URL'de bitiyor | Uyarı | Tek bir son URL seçin ve diğerlerini 301 ile ona yönlendirin. |
| … adresine ulaşmak n atlama sürüyor | Bilgi ya da uyarı | İki atlama yalnızca bir nottur, üç ve üzeri uyarıdır; doğrudan son URL'ye yönlendirin. http:// adresinden aynı sunucudaki https:// adresine yapılan ilk atlama hiçbir zaman gereksiz sayılmaz. |
| … meta refresh ile yönlendiriyor | Uyarı | Devam eden bir HTML sayfası yerine HTTP 301 ile yanıt verin. |
| … önce https://example.com adresine yönlendirmiyor | Bilgi | Yalnızca çıplak alan adının HSTS preload listesine girmesi için gereklidir. |
| Geçici yönlendirmeler (302/307) | Bilgi | Taşıma kalıcıysa 301 ya da 308 kullanın. |
| Yönlendirme döngüsü saptandı | Kritik | Zincir aynı URL'yi iki kez ziyaret ediyor; çakışan kuralları düzeltin. |
| 10'dan fazla yönlendirme | Kritik | Atlama sayısı çok fazla; kuralları sadeleştirin. |
| Bir atlama https:// adresinden http:// adresine yönlendiriyor | Kritik | Protokolü asla düşürmeyin; tüm yönlendirmeleri HTTPS adreslerine gönderin. |
| Site düz HTTP üzerinde bitiyor | Uyarı | Sunucuya HTTP'den HTTPS'e bir yönlendirme ekleyin. |
| … HTTP 4xx/5xx ile bitiyor | Kritik | Zincir bir hata sayfasında bitiyor; hedefi düzeltin. |
| www.example.com çözümlenmiyor | Bilgi | Kullanılmıyorsa sorun değil; aksi hâlde DNS kaydı ve bir yönlendirme ekleyin. |
Yaygın sorunları düzeltmek
Uzun bir zinciri kısaltmak
Zincirler, kurallar birbirinden bağımsız eklendiğinde uzar: CDN HTTPS'i zorunlu kılar, web sunucusu www ekler, uygulama sondaki eğik çizgiyi ve dil önekini ekler. Her kural bir kez yönlendirir, hepsi birlikteyse dört atlama oluşur. Her eski varyantı doğrudan son URL'ye yöneltin. Kuralları tek tek eklemek yerine hepsini tek bir yerde toplamak, ileride kimsenin aynı işi ikinci kez yapmasını da engeller.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
return 301 https://www.example.com$request_uri;
}HSTS preload istisnadır
http://example.com → https://example.com); ancak o zaman çıplak alan adı kendi HSTS başlığını gönderebilir. HSTS rehberine bakın.Döngüyü kırmak
Döngüler genellikle iki katmanın birbiriyle anlaşamamasından doğar. Tipik örnek şudur: CDN kaynak sunucuya HTTP ile bağlanır, kaynak sunucu da HTTP'yi HTTPS'e yönlendirir ve CDN bu yönlendirmeyi olduğu gibi ziyaretçiye geri iletir. CDN'i kaynağa HTTPS ile bağlanacak biçimde yapılandırın ya da kaynak sunucunun CDN'den gelen iletilmiş protokol başlığına güvenmesini sağlayın. İkinci yolu seçerseniz, başlığı yalnızca CDN'in IP aralıklarından gelen isteklerde kabul edin.
Yolları ve sorgu dizelerini korumak
Her eski URL'yi ana sayfaya gönderen yönlendirmeler, ziyaretçinin bağlamını ve sayfanın arama sıralamasını kaybettirir. Yolu nginx'te $request_uri, Apache'de %{REQUEST_URI} ile koruyun ve değişen yolları tek tek eşleyin. Taşınan bir sayfanın karşılığı gerçekten yoksa, ziyaretçiyi ana sayfaya atmak yerine en yakın kategori sayfasına yönlendirin.
Dört varyantı da test edin
Ziyaretçiler aynı sitenin dört sürümüne ulaşabilir: http://example.com, http://www.example.com, https://example.com ve https://www.example.com. Dördü de mümkün olan en az atlamayla aynı son URL'de bitmelidir. Yalnızca kendi yazdığınız adresi kontrol etmek diğerlerini gözden kaçırır; oysa eski bağlantıların ve yer imlerinin kullandığı adresler tam olarak onlardır.
| Başlangıç | Beklenen zincir |
|---|---|
http://example.com | 301 → https://example.com → 301 → https://www.example.com (ya da doğrudan www adresine) |
http://www.example.com | 301 → https://www.example.com |
https://example.com | 301 → https://www.example.com |
https://www.example.com | 200 |
İki HTTP başlangıç noktasını kapsamak için kontrolü hem example.com hem de www.example.com ile çalıştırın; HTTPS varyantları için HTTP Başlıkları Kontrolü aracını kullanın. www adresinin çıplak alan adına, çıplak alan adının da www adresine yönlendirdiği uyuşmazlık, klasik döngünün ta kendisidir. Bu durumda iki kuralın hangi katmanlarda tanımlandığını bulmak, düzeltmenin yarısıdır.
Yönlendirmeler ve arama motorları
Arama motoru tarayıcıları yönlendirmeleri izler ama tarayıcılar gibi kısa zincirleri tercih eder. Her ek atlama keşfi geciktirir ve çok uzun zincirlerde tarayıcıların pes etmesine yol açabilir. Bir site taşımasından sonra kalıcı yönlendirmeleri uzun süre yerinde bırakın; çünkü başka sitelerden gelen bağlantılar ve yer imleri yıllarca eski URL'leri göstermeyi sürdürür. Yönlendirmeleri bir yıl sonra kaldırmak, o bağlantıların tamamını 404 sayfasına çevirir.
- Site içinde yönlendirme yapan adreslere değil, doğrudan son URL'lere bağlantı verin.
- Her sayfadaki kanonik bağlantı öğesini son URL ile aynı yapın.
- Site haritalarını yalnızca son URL'leri listeleyecek biçimde güncelleyin.
- Bütün bir alan adını taşırken alan adı taşıma kontrol listesini kullanın.
SSS
Kontrol neden http:// ile başlıyor?
HTTP'den HTTPS'e yönlendirme sonucun bir parçası olsun diye. Birçok ziyaretçi hâlâ eski bağlantılarla ya da protokol yazmadan girdikleri adreslerle geliyor.
301 mi 308 mi daha iyi?
Web sayfaları için ikisi de iş görür. 308, istek yönteminin korunmasını garanti eder; bu da POST yapan API'ler ve formlar için önemlidir. 301 ise sayfa taşımalarında geleneksel tercihtir.
Kaç yönlendirme fazla sayılır?
Tek atlama, ilki http:// adresinden aynı sunucudaki https:// adresine gidiyorsa iki atlama idealdir. Araç üçüncü atlamada uyarır ve onuncudan sonra durur; istemciler ile arama motoru tarayıcıları da aşağı yukarı orada pes eder.
Yönlendirmeler SEO'ya zarar verir mi?
Kalıcı yönlendirmeler sinyallerin çoğunu hedefe aktarır. Sorun çıkaran şeyler uzun zincirler, kalıcı taşımalarda kullanılan geçici yönlendirmeler ve ilgisiz sayfalara yapılan yönlendirmelerdir.
Araç JavaScript ya da meta refresh yönlendirmelerini görebiliyor mu?
Meta refresh etiketlerini evet: HTML sayfasının ilk 64 KB'ı okunur ve URL içeren bir refresh, atlama olarak izlenip işaretlenir. JavaScript yönlendirmelerini hayır; onlar için sayfayı çalıştıran bir tarayıcı gerekir.
Bir yönlendirme hedefi neden reddediliyor?
Hedefler, başlangıç URL'siyle aynı genel adres kurallarına göre denetlenir. Özel ya da dahili bir adrese işaret eden zincir durdurulur.
HTTPS sayfaları hiç HTTP'ye yönlendirmeli mi?
Hayır. Protokol düşüşü ziyaretçiyi ikinci istekte açığa çıkarır ve HSTS ile çelişir. Araç bunu kritik olarak işaretler.