Bir tarayıcı için de bir arama motoru için de /about ile /about/ iki ayrı adrestir. İkisi de 200 dönüyorsa her sayfanın iki kopyası var demektir. Çaresi, bir biçimi seçip ötekini ona yönlendirmektir - ve bu işin ters gitme biçimi bir döngüdür.
Birini seçin
# nginx: no trailing slash
rewrite ^/(.*)/$ /$1 permanent;
# nginx: with a trailing slash
rewrite ^([^.]*[^/])$ $1/ permanent;
İkinci örüntü, içinde nokta bulunan her şeyi bilerek dışarıda bırakır; böylece dosyalar - /logo.png, /robots.txt - /logo.png/ adresine gönderilmez.
Döngü
curl -sSIL https://example.com/about | grep -E '^HTTP|^location' | head -10
O çıktıda birden fazla yönlendirme ya da aynı iki adresin dönüşümlü görünmesi, döngünün kendisidir. Bakınız yönlendirme döngüleri.
Dizinler istisnadır
Gerçek bir dizinin sondaki eğik çizgiye ihtiyacı vardır: o olmadan sayfa içindeki göreli bağlantılar bir düzey yukarıda çözülür, böylece HTML yüklenirken CSS ve görseller bozulur. Web sunucularının onu eklemek için yönlendirmesi boşuna değildir.
Hangisinin asıl olduğunu söyleyin
<link rel="canonical" href="https://example.com/about">