Jak přesměrovat web z HTTP na HTTPS a přidat WWW?
Přesměrování všech požadavků z HTTP na HTTPS a přidání www lze snadno provést pomocí .htaccess souboru (Apache) s následujícím obsahem. Myslete na to, že je nejlepší řešení nejprve všechno přesměrovat z HTTP na HTTPS a až poté v dalším kroku přidat WWW.
Měli byste vědět, že uvedený postup vyžaduje také HSTS (HTTP Strict Transport Security, neboli vynucené HTTPS), takže pokud jej někdy v budoucnu budete chtít využít, budete aspoň připraveni.
Přesměrování tedy může vypadat nějak takto:
RewriteEngine On # HTTP -> HTTPS RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L] # https://zdenekvecera.cz -> https://www.zdenekvecera.cz RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]
Vysvětlení přepínačů:
- NC (case insensitive) říká, že při porovnávání řetězce nezáleží na velikosti písmen, projde www i WWW
- R=301 (redirect) znamená, že přesměrováváme trvale s kódem 301
- NE (no escape) říká, že nebudeme escapovat, takže dostaneme hodnota:id, nikoli hodnota%3Aid
- L (last) značí, že se po provedení nebude pokračovat v provádění dalších příkazů