htaccess, bir URI yoksa https çalışmıyor
Apache ile hiç çalışmadım, bu yüzden tamamen acemiyim.
Sağlayıcı web sitesinde, 3 alan adının kullanıldığı çoklu barındırma hesabım var. example.comBarındırma planının ana etki alanı olmayan bir etki alanında https bağlantısını zorlamak istiyorum . Yaptığım şey, web sitesinin tüm dosyalarının bulunduğu klasöre bir .htaccessdosya eklemekti examplecom/public_html. In .htaccessben sağlayıcı kılavuzundan kopyalanıp yapıştırılan bu dizeleri vardır:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [L,R=301]
Boş olmayan bir URI'ye sahip bir sayfaya gidersem web sitesi düzgün çalışıyor, ancak ana sayfada çalışmıyor. Örnekte: http://example.com/anypagedoğru yönlendirilir https://www.example.com/anypageiken, http://example.com/yönlendirilir https://www.example.com/public_htmlve neden anlayamıyorum.
Yanıtlar
Görünüşe göre mevcut direktiflerle bir çelişki yaşıyor olabilirsiniz, ancak bir fark yaratıp yaratmadığını görmek için mevcut direktiflerinizi değiştirmeyi deneyebilirsiniz:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://www.example.com/$1 [L,R=301]
Sağlanması .htaccessdosyayı bulunur examplecom/public_htmlsonra yakalanan geribaşvuru (dizine $1) sadece (varsa) en bundan sonra gelen herşeyi içermelidir. Oysa REQUEST_URIsunucu değişkeni her zaman tam URL yolu içerir.
RewriteBaseEğer mutlak URL kullanarak çünkü direktif burada gereksiz olduğunu RewriteRule ikamesi .
Hatalı 301 büyük olasılıkla önbelleğe alınmış olacağından, test etmeden önce tarayıcınızın önbelleğini temizlemeniz gerekecektir. Önbelleğe alma sorunlarını önlemek için 302 (geçici) yeniden yönlendirmelerle test edin.