Nastavení https ve WordPressu (WP)

POZOR: v tomto návodu dochází k úpravám v kódu webu. Než budete pokračovat, ujistěte se, že máte fungující zálohu webu. Využívejte také funkci Zpět v textových editorech, umožní okamžitě vrátit zpět změny, které způsobily potíže.

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

Nezapomeňte do certifikátu přidat samotnou doménu i subdoménu www. Pokud váš web běží na jiné subdoméně, vložte ji do certifikátu také.

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í

Základní nastavení bázové adresy

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

  • 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://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 https://www.vase-domena.tld na https://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 (toto umístění je běžnější).

Výchozí soubor .htaccess pro WordPress bude 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

Pravidla pro přesměrování umístěte nad značku # BEGIN WordPress (pokud je k dispozici), tím předejdete jejich přepsání při aktualizaci WordPressu.

# BEGIN HTTPS WEDOS
RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L] 
Header set Content-Security-Policy "upgrade-insecure-requests;"
# END HTTPS WEDOS 

Celé znění .htaccess souboru

Minimálně tato pravidla by soubor měl obsahovat. Může obsahovat i další, to nebývá problém. Pokud tam máte jiná, než v tomto návodu doporučená pravidla pro přesměrování na https, smažte je.

# BEGIN HTTPS WEDOS
RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L] 
Header set Content-Security-Policy "upgrade-insecure-requests;"
# END HTTPS WEDOS 

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

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  ( v pravidlech výše již uvedeno )

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

Možné problémy

Not Found on Accelerator

Description: Your request on the specified host was not found. Check the location and try again.

Pravděpodobně nemáte aktivní HTTPS na webhostingu, nejprve si jej aktivujte.