Web geliştiricisi olarak bir gün Nginx sunucusunda “Too Many Redirects” hatasıyla karşılaştığınızda, bu sorunun tam olarak ne anlama geldiğini anlamakta zorlanabilirsiniz. Eğer sayfanızda ya da web sitenizde bu hatayı alıyorsanız, paniğe kapılmadan önce sorunun kökenine inmeniz gerekiyor. Merak etmeyin, bu yazıda size, Nginx üzerindeki bu hatayı nasıl çözebileceğinizi adım adım anlatacağım.
Too Many Redirects Hatası Nedir?
Hata Çözümüne Başlamadan Önce: Neden Oluşur?
1. Yönlendirme Döngüsü: Bir URL'nin başka bir URL'ye yönlendirilmesi ve bu yeni URL'nin tekrar eski URL'ye yönlendirilmesi durumu. Yani, bir sayfa sürekli kendisine yönlendiriliyordur.
2. HTTPS ve HTTP Ayarları Çakışması: Web sitenizin hem HTTP hem de HTTPS sürümleri mevcutsa ve bunlar birbirlerine yönlendiriliyorsa, bu da yönlendirme döngüsüne yol açabilir.
3. Tarayıcı Önbelleği ve Çerezleri: Çoğu zaman, tarayıcı önbelleği ve çerezler, hatalı yönlendirmeleri sürdürür. Bu da hatanın devam etmesine neden olabilir.
4. Yanlış Nginx Yapılandırması: Yanlış yönlendirme kuralları veya yapılandırmalar Nginx sunucusunda da bu hatayı tetikleyebilir.
Adım Adım Nginx ‘Too Many Redirects’ Hatası Çözümü
# 1. Yönlendirmeleri Kontrol Et
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Yukarıdaki kod, HTTP üzerinden gelen tüm istekleri HTTPS’ye yönlendirir. Eğer aynı URL’de birden fazla yönlendirme varsa, bu hata oluşabilir. Bu nedenle tüm yönlendirme kurallarınızı dikkatlice kontrol edin.
# 2. SSL ve HTTP Ayarlarını Doğru Yapılandır
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
# HTTPS'yi etkinleştirmek için yönlendirme
if ($http_x_forwarded_proto = 'http') {
return 301 https://$host$request_uri;
}
}
# 3. Tarayıcı Önbelleğini Temizle
- Chrome: Ayarlara git → Gizlilik ve güvenlik → Tarama verilerini temizle → Çerezler ve diğer site verileri, Önbelleğe alınan resimler ve dosyalar’ı seçin.
- Firefox: Menüye tıklayın → Geçmiş → Yeni bir tarih aralığı seçin → “Önbelleği temizle” seçeneğini seçin.
# 4. Nginx Konfigürasyonunu Yeniden Başlat
sudo systemctl restart nginx