Autor | Zpráva | ||
---|---|---|---|
Robert Palička Profil * |
Tyto různé podoby url:
WWW.MUJWEB.CZ mujweb.cz mujweb.cz WWW.MUJWEB.CZ bych potřeboval přesměrovávat (R=301) na jedinou variantu: www.mujweb.cz Podobně ideálně se chová např. server google.com, který uplně vše přesměruje na malá písmena s předponou www. a zároveň i s https..... Myslel jsem že to půjde jednoduše nějak takto, ale nikoliv: RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^mujweb.\.cz$ RewriteRule (.*) http://www.mujweb.cz/$1 [R=301] RewriteCond %{HTTPS} =!n RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] aha nějak mi to "sežralo" ty http/s.... mělo tam být : http://WWW.MUJWEB.CZ/ http://mujweb.cz/ https://mujweb.cz/ https://WWW.MUJWEB.CZ/ na https://www.mujweb.cz/ |
||
Davex Profil |
Robert Palička:
„uplně vše přesměruje na malá písmena“ To je standardní funkce všech prohlížečů, že doménové jméno změní na malá písmena. Podmínka RewriteCond %{HTTPS} =!n je špatně. Správně by měla být RewriteCond %{HTTPS} !=on .
A regulární výraz v první podmínce je také špatně. Správně má být bez tečky před zpětným lomítkem ^mujweb\.cz$ nebo jen porovnání bez regulárního výrazu =mujweb.cz .
|
||
Robert Palička Profil * |
#3 · Zasláno: 1. 3. 2017, 01:30:30
Davex:
OK, díky, to byly překlepy a nyní jsem to tedy napsal a otestoval takto: RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^mujweb\.cz$ RewriteRule (.*) http://www.mujweb.cz/$1 [R=301] RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] a bohužel to vůbec nedělá to co potřebuji, pouze to přesměruje z http na https , ale už to nepřidá "www" když zadám např. http://mujweb.cz ... :-(
a potřebuji: http://mujweb.cz ...........-> https://www.mujweb.cz http://www.mujweb.cz .......-> https://www.mujweb.cz |
||
Kajman Profil |
#4 · Zasláno: 1. 3. 2017, 08:17:04
Pro testování pravidel používejte 302. 301 tam dejte, až je vše v pořádku. Zkuste v prvním pravidle přidat flag L a NC. Flag NE nebude ošetřovat speciální znaky a zachová url, jak byla.
RewriteCond %{HTTP_HOST} ^mujweb\.cz$ [NC] RewriteRule ^(.*)$ https://www.mujweb.cz/$1 [R=302,L,NE] RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302,NE] |
||
Robert Palička Profil * |
#5 · Zasláno: 1. 3. 2017, 12:11:42
Kajman:
Díky toto funguje.... Mám ještě jeden opačný problém! Jeden starší web provozuji na "HTTP" NO SSL ..... a jelikož tam není žádné přihlašování atd. a sdílený hosting zatím nenabízí let's encrypt ... nějaký čas s tím musím žít ..... Ovšem nové přohlížeče přestali respektovat můj jednoduchý htaccess a nepřesměrovávají na variantu http: RewriteCond %{HTTPS} =on RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] Starší verze prohlížečů bezproblémově přeloží na http, ovšem nový Chrome a Firefox pokud uvedu https adresu nepřesměruje a hlásí chybu o nedůvěryhodném certifikátu.... Proč různé prohlížeče nakládají s mod_rewrite různě? To je divočina, pokud tomu tak je .... :-( Co s tím? Je to chyba nastavení serveru Apache, nebo co dělám špatně? |
||
Keeehi Profil |
#6 · Zasláno: 1. 3. 2017, 12:19:50
Těžko říct takhle z popisu. Odkaz na daný web by byl mnohem prospěšnější.
|
||
M02 Profil * |
#7 · Zasláno: 1. 3. 2017, 12:34:26
Pokud ten web nepodporuje HTTPS, případně nemá platný certifikát, skončí požadavek chybou už během navazování spojení. Žádná rewite pravidla nebo přesměrování se neprovedou. Starší prohlížeče jsou vůči chybám TLS tolerantnější a spojení neodmítnou. To už je ale minulost. Zaplať pánbůh.
|
||
Robert Palička Profil * |
Zeptám se ještě jinak, jde pomocí .htaccess zcela vypnout https port?
Koukal jsem že některé no-ssl weby to tak mají třeba namátkou: www.danceradio.cz ...ano máš pravdu poskytovatel má na hostingu prošlý certifikát, teď jsem to ověřoval.... takže jedině vypnout https a bude klid ... ale kde a jak? |
||
Kajman Profil |
#9 · Zasláno: 1. 3. 2017, 13:36:35
Robert Palička:
„Zeptám se ještě jinak, jde pomocí .htaccess zcela vypnout https port?“ Ne. Pokud to je sdílený hosting a na té ip a https portu apache běží, tak si tam můžete dát jen to přesměrování nebo chybovou stránku. Oboje však nemusí být uživateli dostupné, pokud se spojení nenaváže z důvodů nedůvěryhodného certifikátu. Pokud časem budete chtít https, nezapomeňte si pár týdnů před tím změnil kód 301 na 302. Případně tam dát 302 hned, ať se to pak uživatelům necyklí. |
||
Keeehi Profil |
#10 · Zasláno: 1. 3. 2017, 13:39:22
Robert Palička:
„ale kde a jak?“ Pokud to nějak půjde, pak taková možnost bude v administraci hostingu. |
||
Časová prodleva: 6 let
|
0