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.