Doğrudan Apache’de `%{HTTPS}` kontrolü yeterli olabilir; Cloudflare, Plesk nginx proxy veya load balancer arkasında Apache bağlantıyı HTTP görürken ziyaretçi HTTPS kullanıyor olabilir. Bu durumda yalnız `%{HTTPS}` ile zorlamak sonsuz yönlendirme oluşturur ve proxy’nin güvenilir protokol header’ı dikkate alınmalıdır.
301 Moved Permanently
ERR_TOO_MANY_REDIRECTS
Location: https://example.com/
X-Forwarded-Proto: https
Cloudflare Flexible SSLDoğrudan Apache’de `%{HTTPS}` kontrolü yeterli olabilir; Cloudflare, Plesk nginx proxy veya load balancer arkasında Apache bağlantıyı HTTP görürken ziyaretçi HTTPS kullanıyor olabilir. Bu durumda yalnız `%{HTTPS}` ile zorlamak sonsuz yönlendirme oluşturur ve proxy’nin güvenilir protokol header’ı dikkate alınmalıdır.
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.
Cloudflare Flexible SSL ile origin zorla HTTPS kuralını kontrolsüz kullanmayın.
Anlamı: Tarayıcı iki veya daha fazla URL arasında döngüye girdi.
Muhtemel neden: Çift HTTPS kuralı, uygulama yönlendirmesi veya proxy algısı.
Anlamı: Cloudflare ziyaretçiye HTTPS, origin’e HTTP bağlanıyor.
Muhtemel neden: Origin zorla HTTPS kuralı.
Anlamı: Kural eşleşmiyor veya `.htaccess` okunmuyor.
Muhtemel neden: AllowOverride, kural sırası veya CDN page rule.
Anlamı: Canonical host ve protokol ayrı redirect üretiyor.
Muhtemel neden: İki bağımsız kural.
Anlamı: Sertifika challenge URL’si uygulama veya redirect tarafından engellendi.
Muhtemel neden: `.well-known/acme-challenge` istisnası yok.
Anlamı: Home/Site URL ve proxy HTTPS algısı uyumsuz.
Muhtemel neden: Veritabanı URL’si veya server variable.
Anlamı: Tarayıcı/CDN kalıcı redirect’i saklıyor.
Muhtemel neden: Önceki hatalı 301.
Anlamı: Tarayıcı yerel olarak HTTPS’e yükseltiyor.
Muhtemel neden: HSTS cache.
Bu ifadeyle eşleşen kayıt bulunamadı.
for u in http://example.com https://example.com http://www.example.com https://www.example.com; do echo "--- $u"; curl -sIL --max-redirs 10 "$u" | grep -iE '^HTTP|^location:'; doneHTTP/HTTPS ve www varyasyonlarının zincirini gösterir.
curl -sSI -H 'X-Forwarded-Proto: https' http://127.0.0.1 -H 'Host: example.com' | grep -iE '^HTTP|^location:'Origin’in proxy HTTPS header’ına verdiği cevabı test eder.
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -subject -issuer -datesSertifikanın alan adı ve tarih bilgisini gösterir.
grep -RniE 'HTTPS|X-Forwarded-Proto|HTTP_HOST|SERVER_PORT|R=301|redirect' . --include='.htaccess' --include='*.php' | head -n 120`.htaccess` ve uygulamadaki yönlendirmeleri bulur.
curl -sSI https://example.com | grep -iE '^server:|^cf-ray:|^cf-cache-status:|^location:'Cloudflare ve redirect header’larını gösterir.
curl -sS -o /dev/null -w 'HTTP:%{http_code} Final:%{url_effective}\n' -L http://example.com/.well-known/acme-challenge/eka-testACME yolunun yönlendirme ve erişim davranışını test eder.
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]RewriteCond %{HTTPS} !=on
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]RewriteCond %{HTTPS} !=on
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]RewriteRule ^ index.php [L]RewriteRule ^\.well-known/acme-challenge/ - [L]
RewriteRule ^ index.php [L]Origin doğrudan TLS sonlandırıyorsa HTTPS server variable kullanılabilir.
Origin gerçek ziyaretçi protokolünü güvenilir proxy header’ından öğrenir.
Uygulama URL ayarı ve panel Force HTTPS seçeneği `.htaccess` ile çakışabilir.
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.