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 *
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
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 *
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
Těžko říct takhle z popisu. Odkaz na daný web by byl mnohem prospěšnější.
M02
Profil *
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
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
Robert Palička:
ale kde a jak?
Pokud to nějak půjde, pak taková možnost bude v administraci hostingu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: