Přesměrování na https

Pokud již máte aktivovanou DV SSL službu nebo zřízenou SSL službu a vaše webové stránky jsou v prohlížeči přístupné přes zabezpečený protokol HTTPS na adrese https://www.nazev-domeny.cz, můžete si nastavit automatické přesměrování.
Web poté bude přístupný pouze přes protokol HTTPS a veškerá komunikace bude šifrovaná.
 
V případě, že využíváte redakční systém a jiné podobné na vašich webových stránkách(Wordpress, Joomla, Prestashop,..), lze obvykle toto přesměrování nastavit přímo z jejich administračního rozhraní.
Toto nastavení pro redakční systém Wordpress popisujeme v článku Nastavení přesměrování Wordpress na protokol HTTPS se službou DV SSL.
 
Pro zrychlení přesměrování můžete využít také ".htaccess" soubor na serverech s operačním systémem Linux či Windows. Soubor "web.config" pouze u serveru s operačním systémem Windows.
 
Tyto soubory naleznete na FTP účtu vašeho webhostingu ve složce "/www/" v případě, že je již váš web využívá. Pokud ne, je zapotřebí soubor vytvořit. Tento postup popisujeme níže v tomto článku Jak nastavit přesměrování na HTTPS pomocí .htaccess souboru.
 
Do souborů dle vaší potřeby přesměrování přidejte následující řádky z příkladů. V kódu z příkladů je zapotřebí jen upravit název domény "www.nazev-domeny.cz" za váš název domény - s www nebo bez www.
 
Příklad souboru .htaccess - přesměrování na určitou doménu:
RewriteEngine On
RewriteCond %{HTTPS} off [NC]
RewriteRule (.*) https://www.nazev-domeny.cz%{REQUEST_URI} [L,R=301,QSA]
 
Příklad souboru .htaccess - přesměrování se zachováním domény/aliasu v adrese:
RewriteEngine On
RewriteCond %{HTTPS} off [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,QSA]
 
Příklad souboru web.config na přesměrování pouze hlavní domény:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Redirect to HTTPS" stopProcessing="true">
        <match url="(.*)" />
        <conditions>
          <add input="{HTTPS}" pattern="off" ignoreCase="true" />
        </conditions>
        <action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>   
</configuration>
 
Příklad souboru web.config na přesměrování hlavní domény včetně aliasů:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Redirect to HTTPS" stopProcessing="true">
        <match url="(.*)" />
        <conditions logicalGrouping="MatchAny">
          <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          <add input="{HTTP_HOST}" negate="true" pattern="^www.nazev-domeny.cz$" />
        </conditions>
        <action type="Redirect" redirectType="Permanent" url="https://www.nazev-domeny.cz/{R:1}" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>   
</configuration>
 

Jak nastavit přesměrování na HTTPS pomocí .htaccess souboru

V příkladu nastavíme pomocí ".htaccess" souboru automatické přesměrování http://www.forpsi-test.com/ na adresu https://www.forpsi-test.com/ dle prvního příkladu Příklad souboru .htaccess - přesměrování na určitou doménu.
 
K nastavení budeme potřebovat FTP klienta, doporučujeme klienta Filezilla a textový editor - můžete využít například Notepad++, který je poskytován bezplatně a v českém jazyce.
 
Nedoporučujeme provádět úpravu ".htaccess" souboru v dostupném "Poznámkovém bloku", mohlo by dojít při uložení k úpravě jeho formátu a kódování.
 
Po nastavení FTP spojení ověříme, zda se ve složce /www/ nachází ".htaccess" soubor. Pokud ano, stáhneme soubor na lokální disk a provedeme v Notepad++ jeho editaci. Pravidla nejlépe vložte hned na začátek souboru před ostatní obsah, který ponechte.
 
Jestliže soubor neexistuje, v Notepad++ provedeme přes nabídku "Soubor -> Nový" vytvoření nového souboru.
 
Zkopírujeme z prvního příkladu všechny tři řádky a vložíme je do Notepad++:
 
RewriteEngine On
RewriteCond %{HTTPS} off [NC]
RewriteRule (.*) https://www.nazev-domeny.cz%{REQUEST_URI} [L,R=301,QSA]
 
 

Notepad++ a vzorový .htaccess z příkladu

 
 
Nyní upravíme v Notepad++ na 3. řádku příkladový název "nazev-domeny.cz" na "forpsi-test.com":
 

Notepad++ a upravený obsah v .htaccess

 
 
Soubor máme upravený a provedeme jeho uložení pomocí nabídky "Soubor -> Uložit jako".
 
  • v nabídce "Název souboru" napíšeme:
    • .htaccess
  • v nabídce "Uložit jako typ" vybereme:
    • All types(*.*)
 
Soubor poté uložíme do složky na lokálním počítači:
 

Uložení souboru .htaccess v Notepad++

 
 
Soubor máme připravený a můžeme ho nahrát na FTP účet do složky "/www/", případně jím přepsat původní, pokud jsme editovali již existující:
 

Nahrání .htaccess na FTP účet pomocí FileZilla

 
 
Vše by mělo být připraveno a v prohlížeči můžeme otestovat po zadání domény bez HTTPS protokolu, tedy http://vase-domena.cz, zda dojde k přesměrování na zabezpečený protokol HTTPS - URL nastavenou v ".htaccess" souboru.
 
Pro tento test doporučujeme využít "anonymní režim" prohlížeče, aby nedocházelo k načítání obsahu z paměti prohlížeče.
 
Jestliže máte nastavenou SSL službu i pro subdomény, je potřeba provést stejné nastavení s odpovídající adresou i pro ně a nahrát soubor ".htaccess" do jejich root adresářů "/subdoms/název_subdomény/" na FTP účtu.
 
Na vašich webových stránkách může nastat problém, kdy některý obsah nebude automaticky přesměrován na HTTPS protokol a prohlížeč vám bude zobrazovat varování, že web není kompletně zabezpečen.
Tento problém a řešení je popsaný v článku Proč není má stránka zabezpečena?