- Katılım
- 6 Kas 2021
- Mesajlar
- 3,276
- Tepkime puanı
- 4,783
- Puanları
- 113
- Yaş
- 31
- Konum
- Türkiye
- Dc
- fatihbulut
HTML Sayfa Yönlendirme (Redirect) Kodları ve Kullanım Alanları
Web geliştirme sürecinde, sayfa yönlendirmeleri (redirect) sıkça kullanılan ve birçok farklı senaryoda ihtiyaç duyulan bir tekniktir. Bu makalede, HTML ve diğer teknolojilerle sayfa yönlendirme yöntemlerini, kullanım alanlarını ve en iyi uygulamaları detaylı bir şekilde inceleyeceğiz.HTML ile Temel Yönlendirme Yöntemleri
1. Meta Refresh Yöntemi
HTML'nin <meta> etiketi kullanılarak yapılan yönlendirme:
HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="5; url=https://www.hedefsite.com/">
<title>Yönlendirme Sayfası</title>
</head>
<body>
<p>5 saniye içinde hedef siteye yönlendirileceksiniz...</p>
</body>
</html>
- content: İki değer alır (süre; url)
- İlk değer: Yönlendirme öncesi beklenecek saniye (0 anında yönlendirir)
- İkinci değer: Yönlendirilecek URL
- Tüm tarayıcılar tarafından desteklenir
- Basit ve kolay uygulanabilir
- Kullanıcıya bilgi vererek yönlendirme yapılabilir
- SEO açısından en iyi yöntem değildir
- Bazı tarayıcılar güvenlik nedeniyle engelleyebilir
- Çok kısa sürelerde kullanıcı deneyimini olumsuz etkileyebilir
2. JavaScript Yönlendirmeleri
window.location Kullanımı
HTML:
<script>
// Anında yönlendirme
window.location.href = "https://www.hedefsite.com/";
// Alternatif:
// window.location.replace("https://www.hedefsite.com/");
</script>
setTimeout ile Gecikmeli Yönlendirme
HTML:
<script>
// 3 saniye sonra yönlendirme
setTimeout(function() {
window.location.href = "https://www.hedefsite.com/";
}, 3000);
</script>
- Daha fazla kontrol sağlar (koşullu yönlendirmeler yapılabilir)
- Kullanıcı etkileşimi sonrası yönlendirme yapılabilir
- Dinamik URL'ler oluşturulabilir
- JavaScript kapalı olan tarayıcılarda çalışmaz
- Arama motoru botları JavaScript yönlendirmelerini her zaman doğru şekilde takip edemeyebilir
Sunucu Tarafı Yönlendirmeleri
HTML dışında, sunucu tarafında yapılan yönlendirmeler genellikle daha etkilidir.1. HTTP Durum Kodları ile Yönlendirme
- 301 Yönlendirme (Kalıcı Yönlendirme)
- SEO için en uygun yöntem
- Arama motorlarına sayfanın kalıcı olarak taşındığını bildirir
- 302 Yönlendirme (Geçici Yönlendirme)
- Geçici yönlendirmeler için kullanılır
- SEO değeri aktarmaz
2. .htaccess ile Yönlendirme (Apache)
Apache yapılandırması:
# 301 yönlendirme örneği
Redirect 301 /eski-dizin/eski-sayfa.html https://www.site.com/yeni-dizin/yeni-sayfa.html
# Regex ile toplu yönlendirme
RewriteEngine On
RewriteRule ^eski-dizin/(.*)$ /yeni-dizin/$1 [R=301,L]
3. Nginx Yönlendirmeleri
NGINX:
server {
listen 80;
server_name eski-site.com;
return 301 https://www.yeni-site.com$request_uri;
}
Kullanım Senaryoları ve En İyi Uygulamalar
1. Domain Değişiklikleri
Bir siteyi yeni bir domaine taşırken 301 yönlendirmeleri kullanılmalıdır. Bu, SEO değerinin korunmasını sağlar.2. HTTP'den HTTPS'e Geçiş
Tüm HTTP isteklerini HTTPS'e yönlendirmek için sunucu tarafı yönlendirmeler kullanılmalıdır.
Apache yapılandırması:
# .htaccess örneği
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
3. URL Yapısı Değişiklikleri
Site içi URL yapısı değiştiğinde, eski URL'leri yeni yapıya yönlendirmek kullanıcı deneyimi ve SEO için kritiktir.4. Mobil Yönlendirmeler
Mobil kullanıcıları mobil sürüme yönlendirmek için:
JavaScript:
if (/Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent)) {
window.location.href = "https://m.site.com";
}
5. Dil Bazlı Yönlendirmeler
Kullanıcının dil tercihine göre yönlendirme:
JavaScript:
const userLang = navigator.language || navigator.userLanguage;
if (userLang.startsWith("tr")) {
window.location.href = "https://site.com/tr/";
} else {
window.location.href = "https://site.com/en/";
}
SEO ve Yönlendirmeler
Yönlendirmelerin arama motoru optimizasyonu üzerinde önemli etkileri vardır:- 301 vs 302: Kalıcı yönlendirmeler için her zaman 301 kullanın
- Zincirleme Yönlendirmelerden Kaçının: Birden fazla yönlendirme birbirini takip etmemeli
- Yönlendirme Süreleri: Meta refresh'te 0-3 saniye arası ideal
- Canonical URL'ler: Yönlendirilen sayfalar için doğru canonical tag'leri kullanın
Performans Etkileri
Yönlendirmeler sayfa yükleme süresini artırabilir:- Gereksiz Yönlendirmelerden Kaçının: Her yönlendirme ekstra HTTP isteği demektir
- Sunucu Tarafı Yönlendirmeler Tercih Edilmeli: Client-side yönlendirmelerden daha hızlıdır
- CDN Yönlendirmeleri: Büyük ölçekli siteler için CDN üzerinden yönlendirme yapılabilir
Güvenlik ve Yönlendirmeler
- Açık Yönlendirme (Open Redirect) Zafiyetleri:
- Kötü niyetli sitelere yönlendirme yapılmamalı
- Kullanıcı girdisiyle yönlendirme URL'leri oluşturulmamalı
- HTTPS Yönlendirmeleri:
- HTTP'den HTTPS'e yönlendirmeler güvenlik için zorunludur
Test ve Debug
- Yönlendirme Zincirlerini Kontrol Etme:
- Chrome Developer Tools > Network tab
- curl -I https://site.com komutu ile header'ları görüntüleme
- SEO Araçları:
- Google Search Console'da "URL Denetleme" aracı
- Screaming Frog gibi tarayıcılar
Gelişmiş Yönlendirme Senaryoları
1. Koşullu Yönlendirmeler
PHP:
<?php
if ($_SERVER['HTTP_HOST'] == 'eski.site.com') {
header('Location: https://yeni.site.com', true, 301);
exit;
}
?>
2. A/B Test Yönlendirmeleri
JavaScript:
// Rastgele kullanıcıları farklı sürümlere yönlendirme
if (Math.random() < 0.5) {
window.location.href = "https://site.com/version-a";
} else {
window.location.href = "https://site.com/version-b";
}
3. Oturum Durumuna Göre Yönlendirme
JavaScript:
if (!localStorage.getItem('userLoggedIn')) {
window.location.href = '/login';
}
Sonuç
Sayfa yönlendirmeleri web geliştirmede güçlü bir araçtır, ancak doğru şekilde kullanılmadığında kullanıcı deneyimini olumsuz etkileyebilir ve SEO performansını düşürebilir. İhtiyacınıza göre en uygun yöntemi seçmek ve yönlendirmeleri dikkatli bir şekilde uygulamak önemlidir.Genel Öneriler:
- Mümkün olduğunca sunucu tarafı yönlendirmeleri (301/302) kullanın
- JavaScript yönlendirmelerini alternatif olarak düşünün
- Meta refresh'i yalnızca gerekli durumlarda kullanın
- Yönlendirme zincirlerinden kaçının
- Tüm yönlendirmelerinizi düzenli olarak test edin ve kontrol edin