Nginx, web sunucuları arasında en popüler olanlardan biridir ve genellikle yüksek trafiğe sahip web siteleri tarafından tercih edilir. Ama bazen, işler yolunda gitmez ve “Too Many Redirects” hatası ortaya çıkar. Bu hata, genellikle web sitenizin ziyaretçilerine yönlendirme döngüsü oluşturulmasından kaynaklanır. Yani, bir sayfa kendisini sürekli olarak bir başka sayfaya yönlendirir ve bu döngü devam eder.
Hata Neden Ortaya Çıkar?
Birçok kişi, HTTPS'ye geçiş yaparken HTTP'den HTTPS'ye doğru yönlendirmeler yapar. Ancak, yanlış yapılandırmalar bir yönlendirme döngüsüne yol açabilir. Eğer HTTP sayfası kendisini HTTPS'ye yönlendiriyorsa ve HTTPS sayfası tekrar HTTP'ye yönlendiriyorsa, bu döngü bitmez.
2. Çift Yönlendirmeler
Web sitenizin .htaccess dosyasında veya Nginx yapılandırma dosyasında yanlışlıkla birden fazla yönlendirme kuralı tanımlanmış olabilir. Bu da aynı sayfayı tekrar tekrar yönlendirmeye neden olabilir.
3. Tarayıcı Çerezleri ve Önbellek Sorunları
Bazen tarayıcı çerezleri veya önbelleği, eski yönlendirme bilgilerini tutar ve bu da hatalı yönlendirmelere sebep olur.
Hata Nasıl Çözülür?
# 1. Yönlendirme Kurallarını Kontrol Et
Eğer Nginx kullanıyorsanız, yönlendirme ayarlarını düzenlemeniz gerekebilir. Bunun için Nginx yapılandırma dosyanızı (genellikle `/etc/nginx/nginx.conf` veya `/etc/nginx/sites-available/` dizininde bulunur) kontrol etmeniz gerekecek.
server {
listen 80;
server_name www.siteniz.com;
return 301 https://www.siteniz.com$request_uri;
}
Bu yönlendirme doğru olmasına rağmen, siteniz HTTPS'yi otomatik olarak destekliyorsa, tekrar HTTP'ye yönlendirilmesi gerekiyor olabilir. Bu durumda Nginx'e yönlendirmeleri doğru şekilde yapmasını söylemek gerekir.
# 2. HTTPS ile ilgili Yönlendirmeleri Düzeltin
Eğer siteniz HTTPS'ye geçiş yaptıysa ve hâlâ HTTP'ye yönlendirilmesi gerekiyorsa, Nginx yapılandırmanızı aşağıdaki gibi düzeltebilirsiniz:
server {
listen 80;
server_name www.siteniz.com;
return 301 https://www.siteniz.com$request_uri;
}
server {
listen 443 ssl;
server_name www.siteniz.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
# Diğer SSL ayarları ve web sitesi içeriği
}
Bu şekilde, HTTP'yi doğru şekilde HTTPS'ye yönlendirebilirsiniz.
# 3. Tarayıcı Çerezlerini Temizleyin
Tarayıcılar bazen eski yönlendirme bilgilerini tutar ve bu da hataların devam etmesine yol açabilir. Bu yüzden tarayıcı çerezlerini temizlemeyi deneyin.
# 4. Web Sunucu Önbelleğini Temizleyin
Nginx sunucusunda eski yapılandırma dosyaları veya önbellek de hatalı yönlendirmelere neden olabilir. Sunucuda önbelleği temizlemek için şu komutları kullanabilirsiniz:
sudo nginx -t
sudo systemctl reload nginx
Bu komutlar Nginx sunucusunun yapılandırmasını test eder ve ardından yeniden başlatır, böylece eski yönlendirme hatalarını giderirsiniz.
# 5. Siteyi ve Çevresini Kontrol Edin
Eğer yukarıdaki adımlar işe yaramazsa, siteyi barındıran hosting sağlayıcınızla iletişime geçin. Çoğu zaman, sunucu tarafındaki hatalar da "Too Many Redirects" hatasına neden olabilir.
"Too Many Redirects" hatası, çoğunlukla yanlış yapılandırmalar nedeniyle ortaya çıkar. Nginx'i düzgün yapılandırarak ve yönlendirmeleri doğru şekilde ayarlayarak bu sorunu kolayca çözebilirsiniz. Tarayıcı çerezlerini temizlemeyi ve web sunucusunun önbelleğini sıfırlamayı unutmayın. Sorununuzun çözülmemesi durumunda, hosting sağlayıcınızla iletişime geçmeniz de faydalı olacaktır.