Jak nainstalovat nový SSL GoDaddy certifikát Rekey

Potřebuji vynutit veškerý provoz na všech stránkách example.com na https://www.example.com . Po mnoha googlech a pomoci s dokumenty na webových stránkách je shoda (a co říká můj hosting - BlueHost - dokumenty) následující:

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

Což se zdá, že by to mělo fungovat. Ale když napíšu jen example.com v prohlížeči (FF nebo Chrome) je požadavek přesměrován na

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

Pravidlo je v horní části souboru htaccess, takže nechápejte, proč se to děje.

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

Pravděpodobně budete potřebovat L (last) vlajka. tj. [R,L]. Jinak by tato směrnice byla nahoře .htaccess souboru, zpracování bude pokračovat skrz soubor a je pravděpodobné, že bude přepsáno znovu - takže se mohlo stát doslova cokoli. (Byl bych překvapen, kdyby to Bluehost docs neobsahoval?)

Jakmile potvrdíte, že to funguje dobře, měli byste to změnit na trvalé (301) přesměrování. tj. [R=301,L].

  • Dík. Takže (abych pomohl rozumět), příznak "L" zastaví zpracování htaccess a RewriteRule zahájí další požadavek, který způsobí opětovné zpřístupnění pravidla htaccess (za předpokladu, že existuje více souboru htaccess, který tam je). Příznak "L" zastaví jakékoli další zpracování pravidla htaccess, když je splněna podmínka pro dané RewriteRule. Přibližuji se ke správnému porozumění?
  • Ano, něco takového (myslím) ... V .htaccess the L vlajka zastaví aktuální průchod prostřednictvím souboru. Protože a Redirect byl nastaven, Apache nyní pošle odpověď přesměrování (302) zpět klientovi (prohlížeči). (První požadavek končí zde.) Klient poté odešle druhý požadavek, tentokrát pro https://.... Protože (druhým) požadavkem je nyní port 443 (tj. HTTPS), první pravidlo se neshoduje. Zpracování pak pokračuje přes .htaccess soubor.
  • Všimněte si, že L příznak nezastaví veškeré zpracování souboru .htaccess soubor. Proces efektivně „začíná znovu“ (pokud není spuštěno přesměrování) a bude pokračovat ve smyčce, dokud adresa URL neprojde beze změny.
  • Myslím, že to funguje, ale existuje další problém s přesměrováním domény do složky (doména ukazuje na složku public_html, ale kořenový obsah „žije“ ve složce public_html / somefolder. Kombinace vynucení https a také přesměrování doména do složky somefolder nefunguje, používám syntaxi poskytnutou hostitelem. Jelikož se jedná o jinou otázku, vytvářím novou, a nikoli upravovat tuto - a protože vaše odpověď je správná pro původní otázku. Dík.
  • Zda web obsluhuje soubory z podadresáře nebo ne, by nemělo souviset s tímto kanonickým přesměrováním HTTP na HTTPS. Podívám se na vaši novou otázku.

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?