Sådan installeres ny SSL GoDaddy Certificate Rekey

Jeg er nødt til at tvinge al trafik til alle sider example.com til https://www.example.com . Efter mange googles og hosting-websteder hjælper docs, er konsensus (og hvad min hosting - BlueHost - docs siger at gøre) dette:

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

Hvilket ser ud til at det skal fungere. Men når jeg bare skriver example.com i en browser (FF eller Chrome) omdirigeres anmodningen til

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

Reglen er øverst i htaccess-filen, så forstå ikke hvorfor dette sker.

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

Du har sandsynligvis brug for L (last) flag. dvs. [R,L]. Ellers med dette direktiv øverst i .htaccess fil, vil behandlingen fortsætte gennem filen, og den vil sandsynligvis blive omskrevet igen - så bogstaveligt talt kunne alt ske. (Jeg ville blive overrasket, hvis Bluehost-dokumenterne ikke inkluderede dette?)

Når du har bekræftet, at dette fungerer OK, skal du også ændre dette til en permanent (301) omdirigering. dvs. [R=301,L].

  • Tak. Så (for at hjælpe med min forståelse) stopper "L" -flagget behandlingen af ​​htaccess, og RewriteRule vil starte en anden anmodning, som får htaccess-reglen til at få adgang igen (forudsat at der er mere til htaccess-filen, som der er). Flagget "L" stopper enhver yderligere behandling af htaccess-regler, når betingelsen er opfyldt for den omskrivningsregel. Kommer jeg tættere på den korrekte forståelse?
  • Ja, sådan noget (tror jeg) ... In .htaccess det L flag stopper nuværende pas gennem filen. Siden en Redirect er indstillet, sender Apache nu et omdirigering (302) svar tilbage til klienten (browser). (Første anmodning slutter her.) Klienten sender derefter en anden anmodning, denne gang for https://.... Da den (anden) anmodning nu er port 443 (dvs. HTTPS), matcher den første regel ikke. Behandlingen fortsætter derefter gennem .htaccess fil.
  • Bemærk, at L flag stopper ikke al behandling af .htaccess fil. Processen "starter" forfra "(medmindre en omdirigering udløses) og fortsætter med at løkke, indtil URL'en passerer uændret.
  • Jeg tror, ​​det virker, men der er det yderligere problem at omdirigere domænet til en mappe (domænet peger på mappen public_html, men rodindholdet 'lever' i en public_html / somefolder-mappe. Kombinationen af ​​at tvinge https og også omdirigere domæne til mappen somefolder fungerer ikke ved hjælp af syntaksen som leveret af værten. Da det er et andet spørgsmål, opretter jeg et nyt snarere end at redigere dette - og da dit svar er korrekt for det originale spørgsmål. Tak.
  • Uanset om webstedet serverer filer fra en underkatalog eller ej, skal det ikke være relateret til denne kanoniske HTTP til HTTPS-omdirigering. Jeg kigger på dit nye spørgsmål.

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?