Nginx Altında “Eski Url – Yeni Url” Yeniden Yönlendirmesi Nasıl Yapılır?

Nginx Altında "Eski Url - Yeni Url" Yeniden Yönlendirmesi Nasıl Yapılır?

Nginx sunucusuna pek aşina değilim fakat mecbur kalınca yavaş yavaş bir şeyler öğreniyorsunuz.. Birkaç gündür Apache üstünde sorunlar yaşamam sebebi ile Apache’yi aradan çıkarıp Nginx’e geçiş yapmıştım fakat .htaccess’ın Nginx altında çalışmamasından ötürü bazı sorunlarda bonus olarak gelmeye başladı. Bu sorunlardan birisi de eski url’leri yeni url’lere yönlendirme!..

Bir sürü deneme yaptım, ek direktifler bölümünde, ftp’deki conf dosyalarında neler neler denedim ama hiçbir yönlendirmeyi çalıştıramadım. En nihayetinde doğru dosyayı deneme yanılma ile buldum ve doğru kodları oluşturarak eski boş url’leri yeni url’lere yönlendirmeyi başardım. Peki nasıl yaptım?

Centos + Nginx Sunucu Altında Yeniden Yönlendirme!

Başlıkta özellikle Centos diye vurguluyorum çünkü diğer sistemlerde farklılıklar olabilir. Ben bu platform altında .htaccess uyarlamasını ve yönlendirmeyi şu şekilde yaptım;

Normal .htaccess dosyamdaki kodları tek tek bölümlere ayırdım, bir kısmını Plesk’in .htaccess to nginx eklentisi ile, bir kısmını Winginx yardımı ile Nginx formatına çevirdim ve yeni uyumlu kodları Plesk panelde, alan adının Apache ve nginx Ayarları sayfası altındaki Ek Direktifler bölümünden ekledim.

Bu şekilde bir kısım kodları halletmiş oldum. Fakat eski url’leri yeni url’lere yönlendirdiğim kodları Nginx uyumlu yaptığım halde, onlar çalışmadılar. Çalışmayan kodlar şu şekilde idi;

location https://www.lordiz.com/reklam-izleyerek-para-kazanma-veni-vidi-won.html {
rewrite ^(.*)$ https://www.lordiz.com/googleun-odullu-anketleri-ile-para-kazanin.html redirect;
}

Niye çalışmadı, bilmiyorum.

Sonrasında birkaç farklı siteden, farklı kaynaklardan örnekler denedim.. Onlarda çalışmadı.

En nihayetinde ftp alanında conf dosyalarını araştırmaya başladım. Alan adının kendi conf dosyaları için şu konuma bakıyordum ki;

/var/www/vhosts/system/domain.com/conf

O konumdaki nginx.conf dosyasının aradığım şey olduğunu düşünerek bir deneme yaptım. Ve bu deneme başarılı oldu.

Sizde de işe yarar mı bilmiyorum ama denemenizde yarar var.

Öncelikle yukarıdaki konuma gidin, nginx.conf dosyanızı yedekledikten sonra açarak, yönlendirme kodunuzu şu şekilde oluşturun;

if ($request_filename ~ eski-url.html){
rewrite ^ https://www.domain.com/yeni-url.html? permanent;
}

Bu kodu, server başlığı altında, herhangi bir başka if komutu altına yerleştirin ama rastgele yerleştirmeyin. Parantez { } kurallarına dikkat edin.

Sonrasında nginx.conf dosyanızı ftp’deki konumuna gönderip, ssh altından şu komut ile nginx’i yeniden başlatın.

Yeniden başlatma yapmazsanız yukarıdaki kodlar aktif olmaz.

service nginx restart

50 tane mi yönlendirmeniz olacak? Yukarıda paylaştığım kalıptan 50 tane oluşturun, alt alta yerleştirin.

Eski url’yi farklı bir alan adına mı yönlendireceksiniz? domain.com yazan yere diğer alan adınızı yazın.

Yönlendirme sorunsuz çalışacak.

Konuyla alakalı sorularınız yada daha pratik farklı yöntem önerileriniz olursa yorum olarak yazabilirsiniz.

>> Nginx Altında Hotlink Koruması Nasıl Aktif Edilir?