Pean sundima kogu liikluse kõikidele lehtedele example.com kuni https://www.example.com . Pärast palju googeldamist ja saidi abidokumentide majutamist on konsensus (ja mida minu hostimine - BlueHost - dokumendid ütlevad) on järgmine:

RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R] 

Mis tundub, et see peaks töötama. Aga kui ma lihtsalt sisestan example.com brauseris (FF või Chrome) suunatakse taotlus aadressile

https://www.example.com/https:/www.example.com/ 

Reegel on htaccess-faili ülaosas, nii et ärge mõistke, miks see juhtub.

RewriteRule ^(.*)$ https://www.example.com/$1 [R] 

Tõenäoliselt vajate L (last) lipp. st. [R,L]. Vastasel juhul, kui see direktiiv on direktiivi tipus .htaccess faili, jätkub töötlemine faili kaudu ja see kirjutatakse tõenäoliselt ümber uuesti - nii võib sõna otseses mõttes kõike juhtuda. (Ma oleks üllatunud, kui Bluehosti dokumendid seda ei sisaldaks?)

Kui olete kinnitanud, et see töötab, peaksite selle muutma püsivaks (301) ümbersuunamiseks. st. [R=301,L].

  • Aitäh. Niisiis (minu arusaamise hõlbustamiseks) lõpetab lipp "L" htaccessi töötlemise ja RewriteRule algatab uue taotluse, mis põhjustab uuesti juurdepääsu htaccess-reeglile (eeldades, et htaccess-failis on veel midagi, mida seal on). Lipp "L" peatab edasise htaccess-reegli töötlemise, kui selle RewriteRule'i tingimus on täidetud. Kas lähenen õigele arusaamisele lähemale?
  • Jah, midagi sellist (ma arvan) ... In .htaccess L lipp peatab praegune pass faili kaudu. Kuna a Redirect on määratud, saadab Apache nüüd kliendile (brauserile) vastuse ümbersuunamise (302). (Esimene taotlus lõpeb siin.) Seejärel saadab klient teise päringu, seekord selleks https://.... Kuna (teine) taotlus on nüüd port 443 (st HTTPS), siis esimene reegel ei ühti. Seejärel jätkatakse töötlemist läbi .htaccess faili.
  • Pange tähele, et L lipp ei peata kogu võrgu töötlemist .htaccess faili. Protsess "algab otsast peale" (kui ümbersuunamist ei käivitata) ja jätkab tsüklit, kuni URL läbib muutmata kujul.
  • Ma arvan, et see töötab, kuid lisandub probleem ka domeeni kausta ümbersuunamisel (domeen osutab kaustale public_html, kuid juur sisu 'elab' kaustas public_html / somefolder. Kombinatsioon sundida https-i ja ka Domeen kausta somefolder ei tööta, kasutades hosti pakutavat süntaksit. Kuna tegemist on erineva küsimusega, siis loon selle asemel, et seda muuta - ja kuna teie vastus on algsele küsimusele õige. Aitäh.
  • See, kas sait teenindab faile alamkataloogist või mitte, ei tohiks olla seotud selle kanoonilise HTTP-HTTPS-i ümbersuunamisega. Vaatan teie uue küsimuse üle.

none: Charles Robertson | none