Ana içeriğe geç

Apache ve Nginx Redirect Yönlendirme Rehberi

Bu rehberde Apache ve Nginx üzerinde URL yönlendirme (redirect) işlemlerini, SEO açısından doğru şekilde nasıl yapılandıracağınızı öğreneceksiniz.

Özellikle aşağıdaki senaryolar için kritik bir yapılandırmadır:

  • Domain değişikliği
  • HTTP → HTTPS yönlendirme
  • Eski sayfaların yeni URL’lere taşınması
  • SEO kaybı olmadan site migrasyonu

Redirect Nedir?

Redirect, bir URL’ye gelen isteği başka bir URL’ye yönlendirme işlemidir.

Örnek:

eski-site.com/page

yeni-site.com/page


301 ve 302 Redirect Nedir?

301 Redirect (Kalıcı Yönlendirme)

  • Sayfa kalıcı olarak taşındığında kullanılır
  • SEO değerini yeni URL’ye aktarır
  • Google tarafından önerilen yöntemdir

Kullanım alanları:

  • Domain değişikliği
  • URL yapısı değişimi
  • HTTPS zorlaması

302 Redirect (Geçici Yönlendirme)

  • Geçici yönlendirmelerde kullanılır
  • SEO değeri yeni URL’ye aktarılmaz
  • Bakım sayfaları için uygundur

Apache Üzerinde Redirect Yapılandırması

Apache’de yönlendirme işlemleri:

  • Redirect (basit)
  • RedirectMatch (regex)
  • mod_rewrite (ileri seviye)

Apache Konfigürasyon Dosyasını Açma

id="p3v8kq"
sudo nano /etc/apache2/sites-available/000-default.conf

1. Basit Redirect (Apache)

<VirtualHost *:80>

ServerName eski-site.com
Redirect 301 / http://yeni-site.com/

</VirtualHost>

2. Belirli Sayfa Yönlendirme

Redirect 301 /eski-sayfa http://yeni-site.com/yeni-sayfa

3. RedirectMatch (Regex Tabanlı)

RedirectMatch 301 ^/gorseller/(.*)$ http://cdn.site.com/$1

Apache Servisini Yeniden Başlatma

sudo systemctl restart apache2

Nginx Üzerinde Redirect Yapılandırması

Nginx’te redirect işlemleri genellikle return ile yapılır (önerilen yöntem).

1. 301 Redirect (Önerilen Yöntem)

server {
listen 80;
server_name eski-site.com;

return 301 $scheme://yeni-site.com$request_uri;

2. Regex Rewrite (Gelişmiş)

rewrite ^/eski-dizin/(.*)$ /yeni-dizin/$1 permanent;

Nginx Servisini Yeniden Başlatma

sudo systemctl restart nginx

Redirect Loop (Yönlendirme Döngüsü)

Redirect loop, bir URL’nin sürekli birbirine yönlendirilmesi durumudur.

Örnek:

A → B
B → A
``` id="loop1"

Bu durumda site erişilemez hale gelir.


En Yaygın Hata

  • Apache ve Nginx’te aynı domain için çift yönlendirme yapılması

Çözüm

  • Yalnızca tek katmanda redirect kullanın (Apache veya Nginx)

SEO Açısından Redirect Kullanımı

301 Redirect

  • SEO değerini taşır
  • Kalıcı yönlendirmelerde kullanılmalıdır

302 Redirect

  • SEO değeri taşımaz
  • Geçici durumlar için uygundur

HTTP → HTTPS Yönlendirme (Önerilen)

Apache

```apache id="ssl1"
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Nginx
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}

Sıkça Sorulan Sorular

301 ve 302 arasındaki SEO farkı nedir?

301 → SEO değeri taşır 302 → geçici yönlendirme, SEO aktarmaz

HTTP → HTTPS neden 301 olmalı?

Google kalıcı güvenli yönlendirme olarak kabul eder ve SEO kaybı olmaz.

RedirectMatch ve Rewrite farkı nedir?

  • RedirectMatch → basit regex yönlendirme
  • mod_rewrite → daha karmaşık kurallar

Nginx neden daha hızlı redirect yapar?

Çünkü return direktifini kullanır ve ekstra işlem yapmaz.

Redirect sonrası site açılmıyor, neden?

Tarayıcı cache’i temizlenmemiş olabilir DNS veya SSL yönlendirme çakışması olabilir

Sonuç

Bu rehber ile:

Apache ve Nginx üzerinde redirect yönetimi 301 / 302 farklarını doğru kullanma SEO uyumlu URL yönlendirme stratejisi HTTP → HTTPS zorunlu yönlendirme

konularını öğrendiniz.

Doğru redirect yönetimi, SEO performansını korumanın en kritik parçalarından biridir.

Daha gelişmiş altyapı yönetimi için Rabisu Bulut çözümlerini kullanabilirsiniz.