Basit sabit URL taşımalarında `Redirect`/`RedirectPermanent`, koşullu veya regex gerektiren durumlarda `mod_rewrite` kullanılabilir. Doğru 301 hedefi tek adımda nihai canonical URL’ye gitmeli; path, query string ve istisnalar bilinçli yönetilmelidir.
301 Moved Permanently
Location: https://new.example.com/path
Redirect chain detected
ERR_TOO_MANY_REDIRECTSBasit sabit URL taşımalarında `Redirect`/`RedirectPermanent`, koşullu veya regex gerektiren durumlarda `mod_rewrite` kullanılabilir. Doğru 301 hedefi tek adımda nihai canonical URL’ye gitmeli; path, query string ve istisnalar bilinçli yönetilmelidir.
Apache, LiteSpeed, Plesk proxy veya NGINX-only yapıyı ayırmadan `.htaccess` sonucu beklemeyin.
Mevcut dosyayı tarihli yedekleyin; Apache/LiteSpeed hata kaydındaki directive ve satırı bulun.
Redirect, rewrite, header ve erişim kurallarını aynı anda topluca değiştirmeyin.
curl ile status, Location, Content-Type ve redirect sayısını ölçüp cache katmanlarını ayrıca kontrol edin.
Tüm eski URL’leri alakasız biçimde ana sayfaya yönlendirmeyin.
Anlamı: Kaynak URL tekrar kendisine veya önceki URL’ye dönüyor.
Muhtemel neden: Geniş regex veya iki yönlü kural.
Anlamı: Path korunmuyor.
Muhtemel neden: Sabit hedef kullanımı.
Anlamı: Apache varsayılan olarak mevcut query’yi koruyabilir.
Muhtemel neden: QSD kullanılmadı.
Anlamı: Eski URL ara hedeflere uğruyor.
Muhtemel neden: HTTP, www ve path kuralları ayrı.
Anlamı: Nokta veya soru işareti kaçırılmamış.
Muhtemel neden: Yanlış düzenli ifade.
Anlamı: Kural yanlış bağlam veya sıra içinde.
Muhtemel neden: WordPress front-controller önce çalışıyor.
Anlamı: Geçici redirect cache/SEO sinyali oluşturuyor.
Muhtemel neden: R bayrağı kodsuz veya panel ayarı.
Anlamı: Apache path’i belirli aşamalarda decode eder.
Muhtemel neden: Türkçe/space URL ve regex farkı.
Bu ifadeyle eşleşen kayıt bulunamadı.
curl -sIL --max-redirs 15 https://example.com/eski-url | grep -iE '^HTTP|^location:'Tüm yönlendirme adımlarını listeler.
curl -sS -o /dev/null -w 'HTTP:%{http_code} Final:%{url_effective} Redirects:%{num_redirects}\n' -L https://example.com/eski-urlSon hedef ve yönlendirme sayısını gösterir.
curl -sIL 'https://example.com/eski-url?utm_source=test&id=42' | grep -iE '^HTTP|^location:'Parametrelerin hedefe nasıl taşındığını gösterir.
grep -nE 'Redirect|RedirectMatch|RewriteRule|RewriteCond' .htaccessYönlendirme kurallarını sıra numarasıyla gösterir.
while read -r src dst; do final=$(curl -sS -o /dev/null -w '%{url_effective}|%{http_code}|%{num_redirects}' -L "$src"); echo "$src|$dst|$final"; done < redirects.txtKaynak-hedef listesini toplu test eder.
curl -sL https://new.example.com/yeni-url | grep -ioE '<link[^>]+rel=["'"']canonical["'"'][^>]*>' | head -n 1Hedef sayfanın canonical etiketini gösterir.
RewriteRule eski-sayfa yeni-sayfa [R=301,L]Redirect 301 /eski-sayfa https://example.com/yeni-sayfaRewriteRule ^ https://new.example.com/ [R=301,L]RewriteCond %{HTTP_HOST} ^(?:www\.)?old\.example\.com$ [NC]
RewriteRule ^ https://new.example.com%{REQUEST_URI} [R=301,L]RewriteRule ^eski$ /yeni [R=301,L]RewriteRule ^eski$ /yeni? [R=301,L]RewriteRule urun /yeni-urun [R=301,L]RewriteRule ^urun/?$ /yeni-urun [R=301,L]Sabit path yönlendirmelerinde daha basit ve okunabilir olabilir.
Host, query, path ve koşullu taşımalarda kullanılır.
Panel yönlendirmeleri `.htaccess` veya vhost config üretebilir.
Hayır. NGINX `.htaccess` dosyalarını okumaz. Kuralın `server` veya `location` yapılandırmasına çevrilmesi gerekir.
Genellikle hayır; Apache `.htaccess` dosyasını istek sırasında değerlendirir. Ancak sunucu VirtualHost, modül veya AllowOverride değişikliğinde reload/restart gerekir.
Mevcut dosyanın tarihli yedeği alınmalı, aktif document root doğrulanmalı ve değişiklik staging veya düşük trafikli zamanda test edilmelidir.
cPanel’de çoğunlukla `public_html`, Plesk’te `httpdocs` içindedir; addon domain ve subdomainlerin document root’u farklı olabilir.
LiteSpeed Apache uyumluluğu sayesinde kuralların büyük bölümünü destekler; bazı modül ve handler davranışları farklı olabilir.
Apache/LiteSpeed error log içindeki tam directive ve satır kaydıdır. Dosyayı rastgele silmek yerine loga göre geri alınmalıdır.
Alan adı, document root, proxy, WordPress ve sunucu yapısı doğrulanmadan doğrudan eklenmemelidir. Örnekler uyarlanıp test edilmelidir.
cPanel, Plesk, LiteSpeed, WordPress, özel PHP ve WISECP yapılarında yönlendirme, rewrite, CORS, erişim ve 500 hatalarını loglarla birlikte inceliyoruz.