301 Yönlendirme Nasıl Yapılır, .htaccess ile Nginx Farkı Nedir?

Haberci

SEO UZMANI
Yönetici
Katılım
21 May 2023
Mesajlar
550
Tepki
17
Puan
18
823




Bir sayfanın adresini değiştirdiğinizde ya da tüm siteyi yeni bir domaine taşıdığınızda, eski adrese gelen ziyaretçiyi ve arama motorunu doğru yeni adrese yönlendirmenin standart yolu 301'dir. Ama "301 yönlendirme nasıl yapılır" sorusunun cevabı kullandığınız sunucu yazılımına göre değişir; Apache ile Nginx'te bunu yapan ayarlar farklı satırlardır ve birini diğerine kopyalamak çalışmaz.

Bu yazı 301'in ne anlama geldiğini, iki sunucu yazılımında da nasıl kurulduğunu resmî belgelerine dayanarak gösteriyor.

301'i 302'den ayıran şey ne?​


Google Search Central'ın rehberine göre kalıcı (301) yönlendirme, yönlendirmenin geri alınmayacağından emin olduğunuzda kullanılır; geçici bir durum için ise 302 tercih edilmelidir. Aradaki fark yalnız tarayıcı davranışında değil, arama motorunun indeksleme kararında da ortaya çıkıyor: belgeye göre Googlebot bir 301'i takip ettiğinde, hedef adresi kanonik (asıl) adres olarak değerlendiriyor; 302'de ise bu sinyali kullanmıyor. Yani hangi kodu seçtiğiniz, arama sonuçlarında hangi adresin öne çıkacağını doğrudan etkiliyor.

Apache'de .htaccess ile 301​


Apache'nin resmî mod_alias belgesine göre `Redirect` yönergesi `Redirect [durum] [eski-yol] hedef-URL` biçiminde çalışıyor ve `permanent` argümanı 301, `temp` argümanı ise 302 durum kodunu döndürüyor; hiçbir argüman verilmezse belge varsayılanın 302 (geçici) olduğunu belirtiyor, bu da çoğu kişinin farkında olmadığı bir ayrıntı. Belge bu yönergenin server config, virtual host, dizin düzeyi ve `.htaccess` dosyası içinde kullanılabildiğini de doğruluyor; `.htaccess`'te kullanmak için sunucuda `FileInfo` override'ının açık olması gerekiyor.

Nginx'te 301​


Nginx farklı bir yönerge kullanıyor. Nginx'in resmî rewrite modülü belgesine göre `return` yönergesi `return kod URL;` biçiminde çalışıyor ve 301, 302, 303, 307, 308 kodlarıyla birlikte bir yönlendirme adresi belirtilebiliyor. Yani Apache'de `.htaccess` dosyasına eklediğiniz `Redirect permanent` satırı, Nginx'te sunucu bloğu içine yazılan `return 301 ...;` satırının karşılığı; ikisi aynı sonucu farklı sözdizimiyle üretiyor ve birinin dosyasını diğerinin sunucusuna kopyalamak hiçbir şey yapmaz, çünkü Nginx `.htaccess` dosyalarını hiç okumaz.

Yönlendirmelerin en çok gerekli olduğu an: site taşıma​


301 yönlendirmeleri en sık, bir siteyi yeni bir domaine ya da yeni bir URL yapısına taşırken toplu halde eklenir; taşımayı adım adım nasıl planladığımızı Wordpress site taşıma rehberimizde ele almıştık, taşımanın DNS tarafındaki eşleşen adımlarını da Wordpress taşıma için DNS ayarları yazımızda anlatmıştık. Yönlendirme kurulumu genelde bu taşıma sürecinin son adımıdır, DNS geçişi tamamlanmadan test edilemez; eski adres yeni sunucuyu göstermeden kurduğunuz yönlendirme hiçbir işe yaramaz.

Sunucu yönetimini yeni öğreniyorsanız kurulum, tema ve eklenti yönetiminin genel akışını Wordpress webmaster eğitimleri yazımızda bulabilirsiniz; 301 yönlendirmesi bu genel akışın içine sonradan eklenen, ama gözden kaçırılmaması gereken bir adım.

Tek tek mi, örüntüyle mi yönlendirmeli?​


Birkaç sayfa taşındıysa her biri için ayrı bir `Redirect` ya da `return` satırı yeterli. Ama site geneli bir URL yapısı değişikliğinden geçtiyse (ör. tüm ürün adresleri `/urun/` yerine `/p/` ile başlıyorsa) tek tek satır yazmak yerine düzenli ifade (regex) tabanlı bir kural kurmak, hem daha az satırla hem de gelecekte eklenecek yeni sayfalar için otomatik olarak çalışır. Bu, Apache'de `RewriteRule`, Nginx'te ise `rewrite` yönergesiyle yapılır; ikisi de `Redirect`/`return`'den farklı, örüntü eşleştirmeli bir mekanizma kullanır.

Kurduğunuz yönlendirmenin gerçekten 301 döndürdüğünü nasıl doğrularsınız?​


Tarayıcıda adrese gidip yeni sayfanın açılması, kodun 301 olduğunu kanıtlamaz; tarayıcı 302'yi de aynı şekilde takip eder, fark gözle görünmez. Bunu doğrulamanın en güvenilir yolu tarayıcının geliştirici araçlarındaki ağ (network) sekmesinden ilgili isteğe bakmak ya da komut satırından `curl -I hedef-adres` çalıştırıp dönen durum kodunu doğrudan okumaktır; yanıtın ilk satırında `301` veya `302` yazdığını görürsünüz.

Birden fazla yönlendirmenin art arda zincirlenmesi de (A adresi B'ye, B de C'ye yönlendiriyorsa) her ikisi doğru kod dönse bile ekstra bir gecikme ve karmaşıklık ekler; taşıma sonrası eski adresleri doğrudan son adrese bağlamak, aradaki ara adımları atlamak genelde daha temiz bir kurulum sağlar. Özellikle birden fazla taşıma art arda yapıldıysa (önce yeni bir URL yapısına, sonra yeni bir domaine gibi) bu zincirler fark edilmeden birikebilir; yönlendirme listesini periyodik olarak gözden geçirmek bu birikimi önler.

Sık Sorulan Sorular​


301 yönlendirmesi nedir?
Bir adresin kalıcı olarak başka bir adrese taşındığını hem tarayıcıya hem arama motoruna bildiren HTTP durum kodudur; arama motoru hedef adresi kanonik kabul eder.

301 yönlendirme nasıl yapılır?
Apache'de `.htaccess` dosyasına `Redirect permanent eski-yol hedef-URL` satırı, Nginx'te ise sunucu bloğuna `return 301 hedef-URL;` satırı eklenerek yapılır; ikisi farklı sözdizimi kullanır ve birbirinin yerine geçmez.

301 ile 302 yönlendirme arasındaki fark nedir?
301 kalıcı bir taşımayı belirtir ve arama motoru hedef adresi kanonik sayar; 302 geçici bir durumu belirtir ve bu sinyali taşımaz. Apache'de yönerge argümansız bırakılırsa varsayılan olarak 302 uygulanır.

Özetle​


301, bir adresin kalıcı olarak değiştiğini hem ziyaretçiye hem arama motoruna bildiren standart yoldur; Apache'de bunu `.htaccess` içindeki `Redirect permanent` satırı, Nginx'te sunucu bloğundaki `return 301` satırı sağlıyor. Argümansız bırakılan bir Apache yönlendirmesinin sessizce 302'ye düşebildiğini bilmek, çoğu yanlış yapılandırmanın kaynağını da açıklıyor.

Sitenizdeki yönlendirmeleri en son kontrol ettiğinizde hepsi gerçekten 301 mi döndürüyordu, yoksa `curl -I` ile baktığınızda fark etmeden 302 mi kaldığını gördünüz?

Güncelleme: 25 Ağustos 2026.



Dijital Dünyanıza Yön Veren Pusula
 

Ekli dosyalar

  • banner_08.jpg
    banner_08.jpg
    6.1 KB · Görüntüleme: 0

Benzer konular

Geri
Üst