htaccess, bir URI yoksa https çalışmıyor

Oct 03 2020

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

3 MrWhite Oct 03 2020 at 07:24

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.