NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Problém s přesměrováním na HTTPS a milovaný htaccess

Aktivity
Avatar
Neaktivní uživatel:14.6.2017 13:23

Ahoj,

opět klasický problém. Pomocí souboru .htaccess se snažím nastavit přesměrování všech požadavků na https://www, ale vyskytl se jeden neočekávaný problém. Vše funguje, pokud zadám http://www.example.com, přesměruje mě to na https://www.example.com, ale jakmile zadám jen www.example.com, tak k přesměrování nedojde, což je velice zvláštní. Díky za veškeré rady!

Zkoušel jsem všechny zakomentované možnosti, ale nikdy mě to nepřesměrovalo, když jsem nezadal žádný protokol, jen čistě www.example.com.

Používám http://wheregoes.com/retracer.php

RewriteEngine On

# Přesměrovává na https, tady problém bude
RewriteCond %{SERVER_PORT} ^80$
# RewriteCond %{HTTP:X-Forwarded-SSL} off
# RewriteCond %{HTTP:X-Forwarded-Proto} =http
# RewriteCond %{ENV:HTTPS} off
# RewriteCond %{SCRIPT_URI} ^http://
# RewriteCond %{SCRIPT_URI} ^http://
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


# Přesměrovává na www, tady by problém být neměl
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Odpovědět
14.6.2017 13:23
Neaktivní uživatelský účet
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na Neaktivní uživatel
TomasGlawaty:14.6.2017 16:52

Ahoj,
já jsem použival toto, můžeš vyzkoušet:

# HTTP => HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

# non WWW => WWW
RewriteCond %{HTTP_HOST} !^(www)\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,QSA,L]
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
14.6.2017 16:52
Avatar
Odpovídá na TomasGlawaty
Neaktivní uživatel:14.6.2017 21:11

Ahoj, je to přesně to co jsem potřeboval, moc díky. Předtím mě totiž mátly věci jako TOO_MANY_REDIRECTS, nebo že na každém serveru fungovalo něco jiného, ale nenapadlo mě to zkombinovat.

Jen dodám, že je lepší zaměnit pořadí, protože při HTTP bez www by to provedlo redirecty dva.

Možná by to šlo spojit, ale už se v tom nechci hrabat.

# non WWW => WWW
RewriteCond %{HTTP_HOST} !^(www)\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,QSA,L]

# HTTP => HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Nahoru Odpovědět
14.6.2017 21:11
Neaktivní uživatelský účet
Avatar
Martin Svatý:14.6.2017 21:20

Amatérsky se zeptám, pánové... pokud nemám na HTTPS speciál mimo, to jest stránku poskytující certifikát na zabezpečené připojení, znamená to, že mohu využít i toto nastavení pro soubor htaccess? Jsem v tom Bažant a samouk :)

Nahoru Odpovědět
14.6.2017 21:20
Vždy je lepší zeptat se 10x, než to 10x udělat blbě :)
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na Neaktivní uživatel
TomasGlawaty:14.6.2017 21:47

Není zač, rád jsem pomohl :)

 
Nahoru Odpovědět
14.6.2017 21:47
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na Martin Svatý
TomasGlawaty:14.6.2017 21:52

Tyto pravidla do .htaccess slouží pouze pro to, že když nekdo zadá třeba http://www.example.com, nebo http://example.com, tak výsledkem bude vždy https://www.example.com. Tedy aby byl uživatel vždy nasměrovaný na subdoménu www s protokolem https.
Certifikát samozřejmě potřebuješ :-)

 
Nahoru Odpovědět
14.6.2017 21:52
Avatar
Martin Svatý:14.6.2017 22:07

To je přesně to, co jsem číst nechtěl, ale díky ;) Život je krutej :D

Nahoru Odpovědět
14.6.2017 22:07
Vždy je lepší zeptat se 10x, než to 10x udělat blbě :)
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Martin Svatý
Martin Dráb:14.6.2017 23:59

Tak, pokud máš přístup k dané doméně a nepotřebuješ mít ten certifikát extra důvěryhodný (stačí ti, že nebude otravovat uživatele prohlížečů), tak můžeš zdarma pořídit od Let's Encrypt.

Nahoru Odpovědět
14.6.2017 23:59
2 + 2 = 5 for extremely large values of 2
Avatar
David Hynek
Tvůrce
Avatar
Odpovídá na Martin Svatý
David Hynek:15.6.2017 7:02

firemní web mám na Active24 a tam je certifikát pro návštěvníky stránek zdarma (tedy v rámci platby za hosting). Jen se přepne cílení stránky. Třeba u Wedosu mají certifikát zdarma, ale jen pro správce stránek.

Nahoru Odpovědět
15.6.2017 7:02
Čím víc vím, tím víc věcí nevím.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.