Nastavení https ve WordPressu (WP)

Aktivace certifikátu

Jako první si na webhostingu aktivujte HTTPS a vytvořte SSL certifikát. Postup popisuje návod:Nastavení domén pro Let’s Encrypt certifikát

Administrace WP

V dalším kroku musíte zajistit, aby URL s https byla nastavena i v rámci administrace WP. Důležité pro rychlost načítání Vašich stránek ze všech verzí URL je, abyste zvolili hlavní verzi URL např. www.vase-domena.tld. Případně verze bez www.

Tuto URL pak vepíšete do nastavení v administraci WordPress [ Nastavení -> Obecné ] tabulka Základní nastavení

Po tomto kroku fungují Vaše stránky na těchto adresách:

  • http://www.vase-domena.tld
  • http://vase-domena.tld
  • https://www.vase-domena.tld
  • https://vase-domena.tld

Cílem je sjednotit ještě před generováním stránek URL adresu ze které na stránky Vaši návštěvníci přistupují.

Ideální stav je dostat všechny návštěvníky na https://www.vase-domena.tld (zvoleno v administraci WP) ještě před zobrazením stránek. Zároveň se tím vyhnete riziku penalizace ze strany vyhledávačů (Google, Seznam), protože se vyhnete duplicitnímu obsahu.Chceme tedy dosáhnout, aby přesměrování např. z vase-domena.tld na https://www.vase-domena.tld nedělala Vaše aplikace (WP), ale server, který to umí výrazně rychleji. Toho dosáhneme přidáním pravidel do .htaccess

Nastavení .htaccess

Přes FTP ( https://webftp.wedos.net/ nebo libovolný FTP klient) najděte umístění souboru .htaccess. Půjde o .htaccess, který patří konkrétní instalaci WP. V našem případě, kdy máme doménu vase-domena.tld bude .htaccess umístěn buďto ve složce www/ a nebo ve složce www/domains/vase-domena.tld.

V případě WP bude jeho obsah vypadat takto

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Vy umístíte pravidla pro přesměrování přímo pod příkaz RewriteEngine On pro přesměrování jsou:

RewriteCond %{HTTP_HOST} ^vase-domena\.tld [NC]
RewriteRule (.*) https://www.vase-domena.tld/$1 [R=301,QSA,L]

RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.vase-domena.tld/$1 [R=301,L]

Je nutné nahradit smyšlenou doménu vase-domena.tld za Vaší.

U prvního pravidla je použit zápis

RewriteCond %{HTTP_HOST} ^vase-domena\.tld [NC]

Zpětné lomítko \ je nutné dodržet. Pravidlo po nahrazení reálnou doménou (např. wedos.cz) bude vypadat např. takto:

RewriteCond %{HTTP_HOST} ^wedos\.cz [NC]

Výsledek bude vypadat takto:

RewriteCond %{HTTP_HOST} ^wedos\.cz [NC]
RewriteRule (.*) https://www.wedos.cz/$1 [R=301,QSA,L]

RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.wedos.cz/$1 [R=301,L]	

Po přechodu na HTTPS

Po přechodu na HTTPS se může vyskytnout problém a stránky se hlásí jako nezabezpečené. To je způsobeno tím, že např. obrázky či skripty načítají stále přes protokol HTTP

Problém lze vyřešit přidáním příkazu do .htaccess. Pod RewriteEngine On doporučujeme vložit

Header set Content-Security-Policy "upgrade-insecure-requests;"