logo
01.05.2021 10:32
1
Zdravím, poradil by mi někdo jak správně nastavit soubor .htaccess pro https.

Na onebitu jsem vždy používal tohle

Kód:
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule ^(.*)$ https://www.mojedomena.cz/$1 [R,L]
Teď řeším jednu doménu na active24 a doporučují tohle ale nejsem si jistý jak tam správně domény napsat

Kód:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE]

Je možné že mi první způsob jen nefunguje, že je nutné počkat než se certifikát Lets Encrypt aktivuje s Active24 moc zkušenosti nemám, podpora říkala něco o 8 hodinách či co, na Onebitu to bylo takřka hned. Díky za rady
01.05.2021 11:54
2
u htaccess ani jeden způsob není univerzalní, záleží na prostředí a na nastavení, proto se jednotlivé hostingy liší.

Onebit předává informaci o zapnutém ssl jako environment proměnou, proto ti funguje %{ENV:HTTPS}, naopak active24 používá reverzní proxy a informace o ssl předává jako http hlavičku X-Forwarded-Proto, použití té první podmínky %{HTTPS} mi připadá nadbytečné a nelogické.

V tom druhém je doména schovaná jako proměná HTTP_HOST, ta obsahuje aktuální doménu, kód je tedy na doméně nezávislý, kdybys chtěl z nějakého důvodu tam dát konkrétní doménu (není ale nejspíš potřeba), zapíše se to takhle:

Kód:
 RewriteRule ^.*$ https://www.mojedomena.cz%{REQUEST_URI} [L,QSA,NE]
O tom jak dlouho trvá přechod na ssl nebo zapnutí ti neřeknu, to vyloženě záleží na konkrétním hostingu, teoreticky to může být do minuty
01.05.2021 13:58
3
Po instalaci SSL certifikátu a aktivního portu 443 - můžeš vyzkoušet toto přesměrování https://

Kód:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC]

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC]

Kód:
RewriteEngine On
RewriteCond %{HTTPS} =off [OR]
RewriteCond %{HTTP_HOST} !^www. [OR]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index.(html|php)
RewriteCond %{HTTP_HOST} ^(www.)?(.+)$
RewriteRule ^(index.(html|php))|(.*)$ https://www.%2/$3 [R=301,L]


RewriteEngine On
RewriteCond %{HTTPS} =on [OR]
RewriteCond %{HTTP_HOST} !^www. [OR]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index.(html|php)
RewriteCond %{HTTP_HOST} ^(www.)?(.+)$
RewriteRule ^(index.(html|php))|(.*)$ https://www.%2/$3 [R=301,L]
01.05.2021 14:06
4
Díky za odpovědi. Tak nakonec to Active24 trvalo déle než se certifikát aktivoval, aktivuje se tam sám oproti Onebitu kde musíte napsat.

Fungovalo tohle v .htaccess

Kód:
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule ^(.*)$ https://www.mojedomena.cz/$1 [R,L]