Nejste přihlášeni
Stránky 1
Zdravíčko,
na jednom z webů mám aktivní účet Plus,
do Https jsem nahrál všechny potřebné certifikáty,
vybral variantu, kde subdomény řídí .htaccess
ale nedaří se mi ošetřit, aby při zadání http://... byl uživatel přesměrován na bezpečnou část https://...
mimo endoru běžně používám následující:
.htaccess
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
popř.
RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Na endoře však oboje vytváří nekonečnou smyčku při přesměrování.
Domnívám se, že problém je způsoben tím, že máte SSL ošetřeno přes vnitřní proxy. Jak z toho tedy ven? Je to zde vůbec proveditelné?
Jelikož jsem program Plus platil jen kvůli https, smyčku považuji za slušnou podpásovku.
Offline
Teď jsem si s tím hrál a zdá se, že v požadavku je protokol dostupný přes hlavičku X-Forwarded-Proto, takže zkus něco takového:
RewriteCond %{HTTP:X-Forwarded-Proto} !^https$
Offline
Áno s tým som mal problém aj ja, je to z dôvodu, že sa prešlo od Proxy a tam sa to chová inak. Toto mi funguje:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Portfólio
E-mail: eduard(at)karpiel.sk
Offline
Díky, přesně to jsem potřeboval
nejsem v .htaccess zas tak zběhlý.
Jak by mělo toto pravidlo vypadat, aby pohltilo i případné www. (přepsalo "www." na "") ?
... aktuálně mi nástává fatalita, když uživatel zadá http://www..., tak jej presměruje na https://www...
na testovacím serveru (mimo endoru) mi funguje toto:
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
ale tady o5 nejde
Upravil mwkaicz (2014-05-14 13:24:29)
Offline
Bohužel, toto nepomohlo, výsledek je stejný jako v případě který jsem uvedl já, www. zůstává na svém místě
Nějakým jiný nápad na ostranění www. z https ?
Upravil mwkaicz (2014-05-14 14:43:24)
Offline
Tak konečně jsem se dobral k rozumnému řešení, sice nefunguje pokud uživatel zadá https://www..., ale jinak je pro mé potřeby dostačující. Ještě jednou díky, oba tvé předchozí příklady fungují, ale musí být použity jako první, ještě před %{HTTP:X-Forwarded-Proto} takže řešení:
RewriteEngine On
#pro případy, kdy je zadáno http://www...
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,QSA,L]
#pro případ kdy je zadáno http bez www.
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Offline
Omlouvám se, že oživuji staré téma, ale mě to bohužel nefunguje. Resp. http://ondrejsimer.cz/ se přesměruje na https://ondrejsimer.cz/ ale www.ondrejsimer.cz se nepřesměruje vůbec ani po kódu výše uvedeném...
Offline
Me vas web presmerovava jak z www tak bez nej na https://ondrejsimer.cz/. Zkuste smazat cache prohlizece nebo testovat v jinem.
W3C validator | Performance tools | Stavové kódy HTTP | Fiddle | Codepen | Ideone | XAMPP
Offline
Mňa pri otvorení www.ondrejsimer.cz presmeruje korektne na https://ondrejsimer.cz podľa pravidiel čo máte v súbore .htaccess
I pri otvorení https://www.ondrejsimer.cz to korektne presmeruje na https://ondrejsimer.cz po tom čo odkliknem nezhodu certifikátu keďže ten je vystavený pre subdoménu ext.ondrejsimer.cz a ondrejsimer.cz
Offline
Stránky 1