Autor Zpráva
holann
Profil *
RewriteCond %{HTTPS} !=on
RewriteRule ^ %{HTTP_HOST}%{REQUEST_URI} [L,R=301]

potřebuji tuto konfiguraci htaccessu upravit aby volání ws_* se nepřesměrovávala na https a všechna ostatní ano

Děkuji za radu
Kajman
Profil
RewriteCond %{HTTPS} !=on
RewriteRule !^ws_ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Ale klienti již mohou mít původní přesměrování pro ws_ v cache a použít ho, protože tam je kód 301 (tedy trvalé, které si mohou zapamatovat).
holann
Profil *
Kajman:
Moc dík za radu, vypadá to, že se to chová jak potřebuji


Kajman:
Tak ještě něco , hlášení
Smyčka při přesměrování
Server přesměrovává požadavky na tuto adresu sám na sebe, a to takovým způsobem, který zabraňuje jejich dokončení.

Kde může být problém, po zadani odkazu web.cz je web.cz/web.cz/web.cz/web.cz/web.cz
holann
Profil *
Tak nějak jsem se v rom zamotal , prosím jak by měl vypadat htaacess , aby provedl následující

1. přesměrování na https kromě ws_*
2. www.stranka.cz převedl na stranka.cz
3. stranka.cz/pokus převedl na stranka.cz/pokus/ (lomítko na konci , kromě odkazů na soubor např. stranka.cz/pokus/img.jpg)

Mod děkuji za radu
Kajman
Profil
Možná něco takového
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule !^ws_ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]*[^/])$ %{REQUEST_URI}/ [L,R=302,NE]

RewriteCond %{HTTP_HOST} ^www\.([^.]+\.[^.]+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=302,NE]
holann
Profil *
Prosím o kontrolu, jestli dané podmínky splňují následující požadavky, moc děkuji...
1. přesměrování na https kromě ws_*
2. www.stranka.cz převedl na stranka.cz
3. stranka.cz/pokus převedl na stranka.cz/pokus/ (lomítko na konci , kromě odkazů na soubor např. stranka.cz/pokus/img.jpg)


RewriteEngine On
RewriteBase /

# http na https krome ws_*
RewriteCond %{HTTPS} off
RewriteRule !^ws_ %{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

# link bez www
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule .* %1%{REQUEST_URI} [L,R=301,NE]

# pridani lomitka na konec (krome souboru)
RewriteRule ^([^.]*[^/])$ /$1/ [L,R=301,NE]


Kajman:
... o děkuji, vyzkouším.... něco jsem se snažil vytvořit (viz. poslední příspěvek)
holann
Profil *
tak jestě jeden problémek, z mobilní aplikace načítám obrázky, ale po přechodu na https se mě prostě nenačítají, musel bych v appce nastavit přímo https://.... , jenže to by znamenalo nový buil a s tím spojené další problémy.
Lze tedy nastavit, aby se http požadavky z mobilních zařízení (android, ios) automaticky nepřesměrovávaly na https (tzn. upravit toto, už by se to neomezovalo jen na volání webových služeb ws_ , které volám z mobilních zařízení, ale na vše RewriteRule !^ws_ %{HTTP_HOST}%{REQUEST_URI} [L,R=302,NE])
Opět moc děkuji za radu
Kajman
Profil
Moderátor Kajman: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).

A není to spíše tak, že z mobilu načítáte html stránku přes https a ta v sobě obsahuje obrázky na http? To přece stačí všechny odkazy (obrázky, styly, javascripty, iframe,...) napsat s relativní adresou.
holann
Profil *
Kajman:
no, z mobilní appky volám webovou službu přímo linkem např. ws_vrat_data.php . Když jsem neudělal tu podmínku v htaccessu ws_* tak data mě to data nevrátilo, ve fci se POST změnilo na GET (nevím proč). Když jsem opravil zdroják v appce a volal funkci přímo https://... data to vrátilo. Bohužel když opravím volání přímo v appce, znamená to udělat nový build appky a stejně záleží na uživatelých, kdy si appku zaktualizují. Stejný problém je ve volání obrázků přímo z appky např. stranky.cz/img/obrazek.jpg , po přesměrování v htaccessu se obrázek už nezobrazí.

Nejedná se o načítání webové stránky v mobilu, jedná se o volání php a obrázků přímo z appky. Takže otázka je spíše jak vše přesměrovat vše na https z prohlížečů a ostatní voláni z mobilních appek ponechat na http.


asi nějak využít parametr %{HTTP_USER_AGENT} , ale nevím jak to nadefinovat
Kajman
Profil
Při požadavku POST se nedá přesměrovat se zachováním poslaných dat. U přesměrování se pak dělává výjimka (u vás 3x před každým rewriterule)

RewriteCond %{REQUEST_METHOD} !=POST

Pokud ale aplikace neakceptuje přesměrování ani u GET požadavků (obrázky), doporučil bych se přesměrování vyhnout.

Místo přesměrování na straně serveru můžete pro vyhledávače uvést link cannonical. Pro moderní prohlížeče pak nastavit Strict-Transport-Security a použít v html stránce např. jeden obrázek nebo iframe přes https - tam prohlížeč zjistí, ze má používat pro tu doménu jen https i když je odkaz na http.
holann
Profil *
OK, aktivoval jsem si na webhostingu accesslog.
Když neprovádím přesměrování http kod je 200, když ano tak dojde přesměrování kod 302 a appka nepracuje jak má (nenačítá data ani obrázky)

Takže to vypadá, co je přesměrované na https není OK, takže ještě pokus

Prosím, jak nastavit v htaccessu, aby se přesměrování neprovádělo pro ws_* a také *.png obrázky a nebo raději obecně pro přístup z mobilních zařízení (android, ios)

Opět děkuji za pomoc


Ještě upřesnění... přesměrování na https u webových stránek je OK, chybně pracuje volání z mobilní appky


ANO, tak je to tak ... jestliže je požadavek z mobilní aplikace přesměrováván na https, appka nepracuje správně.

Tak prosím, jak nastavit v htaccesu, aby požadavky z mobilních zařízení (android, ios) nebyla přesměrovávána na https (nejedná se o přístup z webového prohlížeče). ? Dik
Kajman
Profil
holann:
Tak prosím, jak nastavit v htaccesu, aby požadavky z mobilních zařízení (android, ios) nebyla přesměrovávána na https

Nepřesměrovávat vůbec, když to ta apka neumí následovat, ani se nehlásí svým specifickým user agentem, kterým by se to dalo rozlišit.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0