Nginx ile Geçici ve Kalıcı Yönlendirmeler Oluşturma
Web dünyasında, bir web sitesinin URL yapısının zaman içinde değişmesi veya belirli nedenlerle ziyaretçilerin farklı bir adrese yönlendirilmesi sıkça karşılaşılan bir durumdur. Bu yönlendirmeler, kullanıcı deneyimini iyileştirmek, arama motoru optimizasyonunu (SEO) korumak ve site yönetimini kolaylaştırmak için kritik öneme sahiptir. Nginx, yüksek performanslı ve esnek bir web sunucusu olarak, bu tür yönlendirmeleri etkili bir şekilde yönetmek için güçlü araçlar sunar. Bu makale, Nginx kullanarak hem geçici (302, 307) hem de kalıcı (301, 308) yönlendirmelerin nasıl oluşturulacağını detaylı bir şekilde açıklayacaktır.
Yönlendirmeler Neden Gereklidir?
Web sitelerinin dinamik doğası gereği, URL’ler değişebilir, içerikler taşınabilir veya yeni alan adlarına geçiş yapılabilir. Bu gibi durumlarda, eski bağlantıların hala çalışır durumda olması ve kullanıcıları doğru yere yönlendirmesi hayati önem taşır. Yönlendirmelerin gerekliliğini birkaç ana başlık altında toplayabiliriz:
1. Arama Motoru Optimizasyonu (SEO)
* Link Değeri Aktarımı: Kalıcı yönlendirmeler (301), eski bir URL’nin arama motorlarındaki link değerini (PageRank) yeni URL’ye aktararak SEO sıralamalarının korunmasına yardımcı olur. Bu, özellikle site taşıma veya URL yapısı değişikliği gibi büyük revizyonlarda kritik öneme sahiptir.
* Yinelenen İçerik Sorunları: Bir içeriğe birden fazla URL üzerinden erişilebiliyorsa (örneğin, www.alanadi.com ve alanadi.com veya http ve https versiyonları), arama motorları bunu yinelenen içerik olarak algılayabilir. Bu durum, sitenizin SEO performansını olumsuz etkileyebilir. Yönlendirmelerle tek bir kanonik URL’ye işaret etmek, bu sorunu çözer.
* Kırık Bağlantıları Önleme: Eski veya yanlış URL’lerin kırık bağlantılara yol açması, kullanıcı deneyimini zedeler ve arama motorları nezdinde sitenizin güvenilirliğini düşürür. Yönlendirmeler, bu bağlantıların doğru hedefe ulaşmasını sağlar.
2. Kullanıcı Deneyimi
* Kesintisiz Erişim: Bir kullanıcı eski bir bağlantıya tıkladığında veya eski bir URL’yi doğrudan yazdığında, yönlendirmeler sayesinde kesintisiz bir şekilde doğru içeriğe ulaşır. Bu, hayal kırıklığını önler ve siteye olan güveni artırır.
* Tutarlılık: Site genelinde tutarlı bir URL yapısı sağlamak, kullanıcıların site içinde gezinmesini kolaylaştırır. Yönlendirmeler, bu tutarlılığın sürdürülmesine yardımcı olur.
3. Site Bakımı ve Yönetimi
* Site Taşıma ve Yeniden Yapılandırma: Bir web sitesi tamamen yeni bir alan adına taşındığında veya kapsamlı bir URL yeniden yapılandırmasından geçtiğinde, tüm eski URL’lerin yeni URL’lere yönlendirilmesi gerekir.
* Bakım Sayfaları: Bir site veya belirli bir bölümü bakımdayken, kullanıcıları geçici olarak bir bakım sayfasına yönlendirmek, onlara bilgi verir ve site kapalıyken bile olumlu bir deneyim sunar.
* A/B Testleri: Farklı sayfa versiyonlarını test ederken, kullanıcıları belirli koşullara göre farklı sayfalara yönlendirmek için geçici yönlendirmeler kullanılabilir.
4. Güvenlik
* HTTPS Zorunluluğu: Tüm HTTP trafiğini HTTPS’ye yönlendirmek, sitenizin güvenliğini artırır ve kullanıcı verilerini korur. Bu, modern web standartlarının temel bir gereğidir.
Yönlendirme Türleri: Geçici ve Kalıcı
HTTP protokolü, farklı senaryolar için çeşitli yönlendirme durum kodları tanımlar. Nginx ile bu kodları kullanarak spesifik yönlendirme davranışları sergileyebiliriz. Başlıca yönlendirme türleri şunlardır:
1. Kalıcı Yönlendirmeler (301 Moved Permanently, 308 Permanent Redirect)
Kalıcı yönlendirmeler, bir kaynağın URL’sinin sonsuza dek değiştiğini ve eski URL’nin artık geçerli olmadığını belirtir. Arama motorları ve tarayıcılar bu bilgiyi önbelleğe alır.
* 301 Moved Permanently:
* Açıklama: Kaynağın kalıcı olarak yeni bir konuma taşındığını belirtir. Bu, en yaygın kullanılan kalıcı yönlendirme türüdür.
* Kullanım Senaryoları:
* Bir web sitesinin alan adının kalıcı olarak değişmesi (örneğin, eski-alanadi.com -> yeni-alanadi.com).
* URL yapısının tamamen değişmesi (örneğin, alanadi.com/eski-sayfa.html -> alanadi.com/yeni-sayfa).
* HTTP’den HTTPS’ye geçiş (tüm HTTP trafiğinin HTTPS’ye yönlendirilmesi).
* www olmayan adreslerin www‘li adreslere veya tam tersi yönlendirilmesi.
* SEO Etkisi: 301 yönlendirmeler, eski URL’nin SEO değerini (link equity) yeni URL’ye tam olarak aktardığı kabul edilir. Bu nedenle, arama motoru sıralamalarını korumak için kritik öneme sahiptir.
* HTTP Metodu: Tarayıcılar ve istemciler, 301 yönlendirmelerinde POST gibi HTTP metotlarını GET’e dönüştürme eğilimindedir.
* 308 Permanent Redirect:
* Açıklama: 301’e çok benzer, ancak HTTP metodu değiştirilmez. Yani, eğer orijinal istek bir POST isteği ise, yönlendirme sonrası istek de POST olarak kalır.
* Kullanım Senaryoları: Özellikle API’ler veya form gönderimleri gibi, HTTP metodunun korunmasının kritik olduğu durumlarda 301 yerine 308 tercih edilebilir.
* SEO Etkisi: 301 ile benzer şekilde link değerini aktardığı kabul edilir.
* HTTP Metodu: İstek metodunu kesinlikle korur.
2. Geçici Yönlendirmeler (302 Found, 307 Temporary Redirect)
Geçici yönlendirmeler, bir kaynağın geçici olarak yeni bir konuma taşındığını belirtir. Arama motorları bu bilgiyi önbelleğe almaz ve eski URL’nin hala birincil kaynak olduğunu düşünür.
* 302 Found:
* Açıklama: Kaynağın geçici olarak yeni bir konuma taşındığını belirtir. Orijinal URL’nin gelecekte tekrar kullanılacağı varsayılır.
* Kullanım Senaryoları:
* A/B testleri için kullanıcıları farklı sayfalara yönlendirme.
* Kısa süreli bakım veya promosyon sayfaları.
* Kullanıcı konumuna veya cihazına göre farklı içerik sunma.
* Sayfanın içeriği sık sık değiştiğinde (örneğin, güncel haberler için en son makaleye yönlendirme).
* SEO Etkisi: 302 yönlendirmeler, link değerini aktarmaz. Arama motorları, orijinal URL’yi dizine eklemeye devam eder. Bu nedenle, kalıcı bir değişiklik için 302 kullanmak SEO açısından zararlı olabilir.
* HTTP Metodu: Tarayıcılar ve istemciler, 302 yönlendirmelerinde POST gibi HTTP metotlarını GET’e dönüştürme eğilimindedir.
* 307 Temporary Redirect:
* Açıklama: 302’ye çok benzer, ancak HTTP metodu değiştirilmez. Orijinal istek POST ise, yönlendirme sonrası istek de POST olarak kalır.
* Kullanım Senaryoları: 308’in geçici versiyonu gibi düşünülebilir. Özellikle HTTP metodunun korunmasının kritik olduğu geçici yönlendirmelerde kullanılır.
* SEO Etkisi: 302 ile benzer şekilde link değerini aktarmaz.
* HTTP Metodu: İstek metodunu kesinlikle korur.
Nginx Yönlendirme Direktifleri
Nginx, yönlendirme işlemleri için iki temel direktif sunar: return ve rewrite. Her ikisinin de kendine özgü kullanım alanları ve avantajları vardır.
1. return Direktifi
return direktifi, basit yönlendirmeler için en hızlı ve en verimli yöntemdir. Bir HTTP durum kodu ve isteğe bağlı olarak bir URL döndürür. Genellikle server veya location blokları içinde kullanılır.
Sözdizimi:
return <status_code> [<URL>];
* <status_code>: 301, 302, 307, 308 gibi HTTP durum kodları veya 4xx, 5xx gibi hata kodları olabilir.
* <URL>: Yönlendirilecek hedef URL. Bu, tam bir URL (http://example.com/new-path), bir mutlak yol (/new-path) veya bir değişken ($scheme://$host$request_uri) olabilir.
Örnekler:
* Kalıcı Yönlendirme (301):
server {
listen 80;
server_name old-domain.com;
return 301 http://new-domain.com$request_uri;
}
Bu örnek, old-domain.com adresine gelen tüm istekleri new-domain.com adresine 301 koduyla kalıcı olarak yönlendirir ve isteğin orijinal yolunu ($request_uri) korur.
* Geçici Yönlendirme (302):
location /old-path {
return 302 /new-temporary-path;
}
Bu örnek, /old-path adresine gelen istekleri /new-temporary-path adresine 302 koduyla geçici olarak yönlendirir.
* 307 veya 308 Yönlendirme:
location /api/old-endpoint {
return 307 http://api.example.com/api/new-endpoint;
}
location /submit-form {
return 308 https://example.com/submit-new-form;
}
Bu örnekler, HTTP metodunu koruyarak geçici veya kalıcı yönlendirmeler yapar.
return direktifi, özellikle basit, tekil URL’den URL’ye veya tüm alan adından alan adına yönlendirmelerde tercih edilmelidir. Performans açısından rewrite direktifinden daha verimlidir çünkü düzenli ifade motorunu çalıştırmaz.
2. rewrite Direktifi
rewrite direktifi, daha karmaşık yönlendirme ve URL yeniden yazma işlemleri için kullanılır. Düzenli ifadeler (regex) kullanarak URL’leri eşleştirebilir ve yeniden yazabilir. server veya location blokları içinde kullanılabilir.
Sözdizimi:
rewrite <regex> <replacement> [<flag>];
* <regex>: Eşleştirilecek düzenli ifade.
* <replacement>: Eşleşen URL’nin yerine geçecek yeni URL. Bu, yakalanan grupları ($1, $2 vb.) içerebilir.
* <flag>: Yönlendirme davranışını belirleyen isteğe bağlı bir bayrak.
rewrite Bayrakları:
* last: Yeniden yazma işlemini tamamlar ve Nginx’in yeniden yazılan URL ile server veya location blokları içinde yeniden eşleşme yapmasını sağlar. Bu, genellikle bir dahili yönlendirme (internal redirect) için kullanılır.
* break: Yeniden yazma işlemini tamamlar ve Nginx’in mevcut location bloğu içindeki diğer rewrite direktiflerini işlemesini durdurur. Yeniden yazılan URL ile başka bir location bloğuna geçmez.
* redirect (302): Yeniden yazılan URL’ye bir 302 (Found) geçici yönlendirmesi gönderir. Tarayıcıya yeni URL’yi gösterir.
* permanent (301): Yeniden yazılan URL’ye bir 301 (Moved Permanently) kalıcı yönlendirmesi gönderir. Tarayıcıya yeni URL’yi gösterir ve arama motorlarının link değerini aktarmasını sağlar.
Örnekler:
* Eski bir sayfayı yeni bir sayfaya kalıcı olarak yönlendirme (301):
location /eski-sayfa.html {
rewrite ^/eski-sayfa.html$ /yeni-sayfa permanent;
}
Bu örnek, tam olarak /eski-sayfa.html isteğini /yeni-sayfa adresine 301 koduyla yönlendirir. ^ ve $ işaretleri, düzenli ifadenin tam eşleşmesini sağlar.
* Bir dizindeki tüm dosyaları başka bir dizine taşıma (301):
location /eski-dizin/ {
rewrite ^/eski-dizin/(.*)$ /yeni-dizin/$1 permanent;
}
Bu örnek, /eski-dizin/ altındaki tüm URL’leri (.* ile yakalanan kısım $1 değişkenine atanır) /yeni-dizin/ altına yönlendirir. Örneğin, /eski-dizin/resim.jpg isteği /yeni-dizin/resim.jpg adresine yönlendirilir.
* Dosya uzantısı değiştirme (301):
location ~ ^/(.*)\.php$ {
rewrite ^/(.*)\.php$ /$1.html permanent;
}
Bu örnek, .php uzantılı tüm istekleri .html uzantısına dönüştürerek kalıcı olarak yönlendirir. ~ işareti, location bloğunun düzenli ifade eşleşmesi yapacağını belirtir.
rewrite direktifi, if blokları ile birleştirilerek daha koşullu yönlendirmeler de oluşturabilir, ancak if bloklarının Nginx’te bazı beklenmedik davranışlara yol açabileceği unutulmamalıdır. Genellikle if yerine map direktifi veya location blokları tercih edilir.
return ve rewrite Karşılaştırması:
| Özellik | return Direktifi | rewrite Direktifi |
| :————- | :—————————————————— | :————————————————————- |
| Kullanım | Basit, tekil yönlendirmeler, HTTP durum kodu döndürme. | Karmaşık URL yeniden yazma, düzenli ifade eşleştirme. |
| Performans | Daha hızlı ve verimli (düzenli ifade motorunu kullanmaz). | Düzenli ifade motorunu kullandığı için biraz daha yavaş olabilir. |
| Esneklik | Daha az esnek, URL manipülasyonu sınırlı. | Daha esnek, karmaşık URL desenlerini işleyebilir. |
| Yerleşim | server veya location blokları içinde. | server veya location blokları içinde. |
| Dahili/Harici | Her zaman harici bir yönlendirme (tarayıcıya yeni URL gönderir). | last ve break ile dahili, redirect ve permanent ile harici yönlendirme yapabilir. |
Genel kural olarak, mümkün olduğunca return direktifini kullanın. Sadece return ile yapamayacağınız karmaşık desen eşleştirme veya URL manipülasyonu gerektiren durumlarda rewrite‘a başvurun.
Pratik Nginx Yönlendirme Örnekleri
Şimdi Nginx’in yapılandırma dosyalarında sıkça kullanılan yönlendirme senaryolarına göz atalım. Bu örnekler genellikle /etc/nginx/nginx.conf veya /etc/nginx/sites-available/your_site gibi dosyalarda server veya location blokları içinde yer alır.
1. HTTP’den HTTPS’ye Yönlendirme (301)
Bu, modern web siteleri için bir zorunluluktur. Tüm HTTP trafiğini HTTPS’ye kalıcı olarak yönlendiririz.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
# SSL sertifika ve anahtar ayarları
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
# Diğer Nginx ayarları (root, index, location blokları vb.)
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Bu yapılandırmada, ilk server bloğu 80 portunu (HTTP) dinler ve gelen tüm istekleri https:// protokolüne ve orijinal host ile URI’ye 301 koduyla yönlendirir. İkinci server bloğu ise 443 portunu (HTTPS) dinler ve sitenin içeriğini sunar.
2. www Olmayan Adresleri www‘ye Yönlendirme (301)
Alan adınızın www.example.com mu yoksa example.com mu olacağına karar verdikten sonra, diğerini tercih ettiğiniz versiyona yönlendirmelisiniz. Bu, yinelenen içerik sorunlarını önler.
* example.com -> www.example.com yönlendirme:
server {
listen 80;
listen 443 ssl;
server_name example.com; # www olmayan alan adı
# Eğer HTTPS kullanılıyorsa SSL ayarları burada olmalı
# ssl_certificate ...
# ssl_certificate_key ...
return 301 $scheme://www.example.com$request_uri;
}
server {
listen 80;
listen 443 ssl;
server_name www.example.com; # Asıl alan adı
# SSL ayarları (eğer 443 dinleniyorsa)
# ssl_certificate ...
# ssl_certificate_key ...
# Sitenizin içeriği
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Burada $scheme değişkeni http veya https protokolünü otomatik olarak alır, böylece hem HTTP hem de HTTPS istekleri doğru şekilde yönlendirilir.
* www.example.com -> example.com yönlendirme (tersi):
server {
listen 80;
listen 443 ssl;
server_name www.example.com; # www olan alan adı
# SSL ayarları
return 301 $scheme://example.com$request_uri;
}
server {
listen 80;
listen 443 ssl;
server_name example.com; # Asıl alan adı
# SSL ayarları
# Sitenizin içeriği
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
3. Eski Bir URL’yi Yeni Bir URL’ye Yönlendirme (301/302)
Tekil sayfaların veya dizinlerin taşınması durumunda kullanılır.
* Tekil Sayfa Yönlendirmesi (301):
location = /eski-sayfa.html {
return 301 /yeni-sayfa;
}
= işareti, tam bir URI eşleşmesi gerektirdiğini belirtir. Bu, /eski-sayfa.html dışındaki benzer URL’lerin etkilenmemesini sağlar.
* Dizin Yönlendirmesi (301):
location /eski-dizin/ {
rewrite ^/eski-dizin/(.*)$ /yeni-dizin/$1 permanent;
}
Bu, /eski-dizin/ altındaki tüm URL’leri /yeni-dizin/ altına yönlendirir. Örneğin, /eski-dizin/alt-sayfa.html isteği /yeni-dizin/alt-sayfa.html adresine yönlendirilir.
* Regex ile Karmaşık Yönlendirme (örneğin, tarih bazlı URL’ler):
Eski blog sistemleri genellikle tarih bazlı URL’ler kullanır (örneğin, /blog/2023/10/makale-adi.html). Yeni sistemde bu URL yapısı değiştiyse:
location ~ ^/blog/(\d{4})/(\d{2})/(.*)\.html$ {
rewrite ^/blog/(\d{4})/(\d{2})/(.*)\.html$ /makaleler/$3 permanent;
}
Bu örnek, /blog/YYYY/MM/makale-adi.html formatındaki URL’leri /makaleler/makale-adi formatına yönlendirir. (\d{4}), dört haneli bir yıl; (\d{2}), iki haneli bir ay; (.*), geri kalan kısmı yakalar ve $3 ile yeni URL’de kullanılır.
4. Bakım Sayfasına Yönlendirme (302/307)
Sitenizin tamamını veya bir bölümünü bakım moduna alırken kullanıcıları bilgilendirici bir sayfaya yönlendirebilirsiniz.
server {
listen 80;
listen 443 ssl;
server_name example.com www.example.com;
# SSL ayarları
# Belirli IP adresleri hariç tüm trafiği bakım sayfasına yönlendir
if ($remote_addr !~ "^(192\.168\.1\.1|127\.0\.0\.1)$") {
return 302 /maintenance.html;
}
# Bakım sayfası için ayrı bir location bloğu
location = /maintenance.html {
root /var/www/maintenance; # Bakım sayfasının bulunduğu dizin
internal; # Bu sayfanın sadece Nginx tarafından yönlendirme ile erişilebilir olmasını sağlar
}
# Diğer site ayarları
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Bu örnek, belirli IP adresleri (yöneticiler) hariç tüm ziyaretçileri /maintenance.html adresine 302 koduyla yönlendirir. internal direktifi, /maintenance.html adresine doğrudan dışarıdan erişimi engeller, sadece Nginx’in dahili yönlendirmeleriyle erişilebilir olmasını sağlar.
5. Sondaki Eğik Çizgiyi (Trailing Slash) Yönetme (301)
URL’lerin sonunda eğik çizgi olup olmaması da SEO açısından önemlidir. Tutarlılık için birini seçip diğerini yönlendirmelisiniz.
* Eğik Çizgi Ekleme (örneğin, /hakkimizda -> /hakkimizda/):
location / {
# Eğer dosya değilse ve sonunda eğik çizgi yoksa, eğik çizgi ekle
if (-d $request_filename) { # Eğer bir dizin ise
rewrite ^(.+[^/])$ $1/ permanent;
}
}
Bu, yalnızca dizinler için geçerlidir. Dosya adı uzantısı olan URL’leri etkilemez.
* Eğik Çizgi Kaldırma (örneğin, /hakkimizda/ -> /hakkimizda):
location ~ ^/(.*)/$ {
return 301 /$1;
}
Bu, sonunda eğik çizgi olan tüm URL’leri, eğik çizgisiz versiyonuna yönlendirir. Ancak, bu kural root dizinini (/) de etkileyebilir, bu nedenle dikkatli kullanılmalıdır. Genellikle location / bloğunun içine konulmaz, daha spesifik location bloklarında veya server bloğunda if ile kontrol edilerek kullanılır.
Nginx Konfigürasyon Hiyerarşisi ve Yönlendirmeler
Nginx, yapılandırma dosyalarını belirli bir sıraya göre işler. Bu sıra, yönlendirmelerin doğru çalışması için anlaşılması gereken önemli bir konudur:
1. server blokları: Gelen isteği karşılayacak server bloğu listen ve server_name direktiflerine göre seçilir.
2. rewrite direktifleri (server bloğunda): Seçilen server bloğu içindeki rewrite direktifleri sırasıyla işlenir.
3. location blokları: Yeniden yazılan (veya orijinal) URI’ye göre en uygun location bloğu seçilir.
* Önce tam eşleşme (=).
* Sonra önek eşleşmesi (^~).
Sonra düzenli ifade eşleşmesi (~ veya ~).
* Sonra genel önek eşleşmesi (prefix match).
4. rewrite direktifleri (location bloğunda): Seçilen location bloğu içindeki rewrite direktifleri işlenir.
5. return direktifleri: return direktifi nerede bulunursa bulunsun (server veya location bloğunda), hemen işlenir ve isteğin işlenmesini durdurur.
Önemli Not: rewrite direktifi last bayrağı ile kullanıldığında, Nginx yeniden yazılan URI ile location bloklarını baştan tekrar eşleştirmeye çalışır. Bu, bir rewrite döngüsüne yol açabileceği için dikkatli kullanılmalıdır. return direktifi ise her zaman isteği sonlandırır ve tarayıcıya yönlendirme yapar. Bu nedenle, basit yönlendirmeler için return tercih edilir.
if Direktifi Kullanımı: Nginx’teki if direktifi, beklenmedik davranışlara yol açabilen karmaşık bir direktiftir (“if is evil” olarak da bilinir). Mümkün olduğunca map direktifi veya location blokları ile daha spesifik eşleşmeler kullanarak if kullanımından kaçınılmalıdır. Ancak, yukarıdaki bakım sayfası örneğinde olduğu gibi bazı senaryolarda pratik olabilir.
Nginx Yönlendirmelerini Test Etme
Yapılandırma değişiklikleri yaptıktan sonra, yönlendirmelerin doğru çalıştığından emin olmak çok önemlidir.
1. Nginx Yapılandırma Sözdizimi Kontrolü:
sudo nginx -t
Bu komut, Nginx yapılandırma dosyanızdaki sözdizimi hatalarını kontrol eder. Herhangi bir hata varsa, Nginx hizmetini yeniden başlatamazsınız.
2. Nginx Hizmetini Yeniden Başlatma/Yeniden Yükleme:
sudo systemctl reload nginx
# veya
sudo systemctl restart nginx
reload komutu, Nginx’i kesinti olmadan yeni yapılandırmayı yüklemeye zorlar. restart ise Nginx’i tamamen durdurup yeniden başlatır.
3. curl ile HTTP Başlıklarını Kontrol Etme:
curl -I http://old-domain.com/old-path
-I (veya --head) bayrağı, sadece HTTP başlıklarını almanızı sağlar. Yönlendirme durum kodu (301, 302 vb.) ve Location başlığı altında yeni URL’yi görmelisiniz.
Örnek çıktı:
HTTP/1.1 301 Moved Permanently
Server: nginx/1.18.0 (Ubuntu)
Date: Tue, 24 Oct 2023 10:00:00 GMT
Content-Type: text/html
Content-Length: 162
Location: https://new-domain.com/new-path
Connection: keep-alive
4. Tarayıcı Geliştirici Araçları: Tarayıcınızın geliştirici araçlarındaki “Network” sekmesini kullanarak, bir URL’ye eriştiğinizde gerçekleşen istekleri ve yönlendirme zincirlerini gözlemleyebilirsiniz.
5. Online Redirect Checker Araçları: Birçok web sitesi, URL’lerinizi kontrol etmek ve yönlendirme zincirlerini analiz etmek için ücretsiz araçlar sunar.
Nginx Yönlendirmeleri İçin En İyi Uygulamalar
* return Kullanımını Önceliklendirin: Basit yönlendirmeler için her zaman return direktifini tercih edin. Daha verimli ve hata yapma olasılığı daha düşüktür.
* Kalıcı mı, Geçici mi? Doğru Kodu Kullanın: Yönlendirmenin kalıcı mı yoksa geçici mi olduğuna dikkat edin. Yanlış kod kullanımı SEO’nuza zarar verebilir.
* Yönlendirme Zincirlerinden Kaçının: Bir URL’nin birden fazla yönlendirme üzerinden geçerek nihai hedefine ulaşması (örneğin, A -> B -> C), performansı düşürür ve arama motorları için karmaşıklık yaratır. Mümkün olduğunca doğrudan yönlendirmeler (A -> C) kullanın.
* Düzenli İfadeleri Dikkatli Kullanın: rewrite direktifindeki düzenli ifadeler güçlüdür ancak yanlış kullanıldığında beklenmedik sonuçlara yol açabilir. Mümkün olduğunca spesifik olun ve geniş yakalama desenlerinden kaçının.
* Yedekleme Yapın: Nginx yapılandırma dosyalarında herhangi bir değişiklik yapmadan önce daima bir yedek alın.
* Kapsamlı Test Edin: Değişiklikleri canlıya almadan önce tüm yönlendirmeleri farklı tarayıcılar, cihazlar ve curl gibi araçlarla kapsamlı bir şekilde test edin.
* SEO Etkisini İzleyin: Büyük yönlendirme değişikliklerinden sonra arama motoru konsollarınızı (Google Search Console, Bing Webmaster Tools) izleyerek sitenizin indeksleme ve sıralama performansını kontrol edin.
Sonuç
Nginx, güçlü ve esnek yönlendirme yetenekleri sayesinde web yöneticilerine ve geliştiricilere URL yönetiminde tam kontrol sağlar. return ve rewrite direktiflerini doğru anlayarak ve kullanarak, HTTP’den HTTPS’ye geçişlerden alan adı değişikliklerine, eski URL’lerin yenilerine yönlendirilmesinden bakım sayfalarının yönetimine kadar birçok senaryoyu etkin bir şekilde çözebilirsiniz. Yönlendirmelerin doğru bir şekilde uygulanması, hem kullanıcı deneyimi hem de arama motoru optimizasyonu için hayati öneme sahiptir. Bu makaledeki örnekler ve en iyi uygulamalar, Nginx ile güvenli, hızlı ve SEO dostu yönlendirmeler oluşturmanız için sağlam bir temel sunmaktadır.