Přesměrování na HTTPS
Dobrý den.
Používám Váš hosting s administračním systémem WordPress.
Mám aktivovanou příplatkovou službu \“podpora HTTPS na doméně (SNI), podle toho návodu jsem nastavil doménu woodpecker-woodcrafts.com pro Let´s Encrypt certifikát. Následně jsem podle tohoto návodu upravil v administraci WordPress základní nastavení u instalace WordPressu na https://woodpecker-woodcrafts.com a úvodní stránku také na https://woodpecker-woodcrafts.com. Dosud vše fungovalo, stránky se zobrazovaly jako zabezpečené s https protokolem, přihlášení do administrace WordPress proběhlo bez problémů. Problém nastal v dalším kroku při úpravě souboru .htaccess.
Můj původní soubor .htaccess ve složce www/, který jsem upravoval, vypadal takto:
# htaccess rules for subdomains and aliases # to create new subdomain, create a folder www/subdom/(subdomain name) # to create web for alias, create a folder www/domains/(whole domain name) # htaccess pravidla pro subdomeny a samostatne weby aliasu # pro vytvoreni subdomeny vytvorte adresar www/subdom/(nazev subdomeny) # pro vytvoreni webu pro alias vytvorte adresar www/domains/(cely domenovy nazev) # dalsi info a priklady: http://kb.wedos.com/r/32/webhosting-htaccess.html RewriteEngine On # cele domeny (aliasy) RewriteCond %{REQUEST_URI} !^domains/ RewriteCond %{REQUEST_URI} !^/domains/ RewriteCond %{HTTP_HOST} ^(www\\.)?(.*)$ RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d RewriteRule (.*) domains/%2/$1 [DPI] # subdomeny (s nebo bez www na zacatku) RewriteCond %{REQUEST_URI} !^subdom/ RewriteCond %{REQUEST_URI} !^/subdom/ RewriteCond %{HTTP_HOST} ^(www\\.)?(.*)\\.([^\\.]*)\\.([^\\.]*)$ RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d RewriteRule (.*) subdom/%2/$1 [DPI] # aliasy - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R] # subdomeny - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]
Po provedených změnách dle návodu vypadal takto:
# htaccess rules for subdomains and aliases # to create new subdomain, create a folder www/subdom/(subdomain name) # to create web for alias, create a folder www/domains/(whole domain name) # htaccess pravidla pro subdomeny a samostatne weby aliasu # pro vytvoreni subdomeny vytvorte adresar www/subdom/(nazev subdomeny) # pro vytvoreni webu pro alias vytvorte adresar www/domains/(cely domenovy nazev) # dalsi info a priklady: http://kb.wedos.com/r/32/webhosting-htaccess.html RewriteEngine On # presmerovani HTTPS RewriteCond %{HTTP_HOST} ^woodpecker-woodcrafts\\.com [NC] RewriteRule (.*) https://www.woodpecker-woodcrafts.com/$1 [R=301,QSA,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://www.woodpecker-woodcrafts.com/$1 [R=301,L] # cele domeny (aliasy) RewriteCond %{REQUEST_URI} !^domains/ RewriteCond %{REQUEST_URI} !^/domains/ RewriteCond %{HTTP_HOST} ^(www\\.)?(.*)$ RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d RewriteRule (.*) domains/%2/$1 [DPI] # subdomeny (s nebo bez www na zacatku) RewriteCond %{REQUEST_URI} !^subdom/ RewriteCond %{REQUEST_URI} !^/subdom/ RewriteCond %{HTTP_HOST} ^(www\\.)?(.*)\\.([^\\.]*)\\.([^\\.]*)$ RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d RewriteRule (.*) subdom/%2/$1 [DPI] # aliasy - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R] # subdomeny - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]
Po modifikaci souboru se nedokážu přihlásit do administrace wordpress, po zadání přihlašovacích újadů jsem přesměrován na stejnou stránku přihlášení. Vymazání veškerých cookies situaci nemění. Při zadání adresy webu se zobrazí chyba: smyčka při přesměrování. Zkusil jsem upravit .htaccess soubor přesně podle návodu výše. Výsledek vypadal takto:
# BEGIN WordPress RewriteEngine On RewriteCond %{HTTP_HOST} ^woodpecker-woodcrafts\\.com [NC] RewriteRule (.*) https://www.woodpecker-woodcrafts.com/$1 [R=301,QSA,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://www.woodpecker-woodcrafts.com/$1 [R=301,L] RewriteBase / RewriteRule ^index\\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
Po této změně se při pokusu načtení stránky přihlášení do administrace wordpress zobrazí chyba 404 /index.php nenalezen na tomto serveru. Při zadání url stránky se zobrazí uvítací obrazovka Wedos – webhosting je aktivní. Po smazání souboru index.html ze složky www/ se situace nemění.
Poradíte mi, prosím, jak vyřešit tento problém? Děkuji
4 Answers
Opraveno, nyní by měl web být funkční.
Děkuji za radu, znak jsem smazal, bohužel problém přetrvává. Stránka přihlášení do administrace hlásí 404,not found. Adresa webu zobrazuje 403 – Forbidden access.
Dobrý den,
v kódu vidím jeden přebytečný znak \
Namísto RewriteCond %{HTTP_HOST} ^woodpecker-woodcrafts\\.com [NC] má být:
RewriteCond %{HTTP_HOST} ^woodpecker-woodcrafts\.com [NC]
Možná to bude ten problém.