Autor Zpráva
PetraPP
Profil
Ahojte,
chci přejít s webem na HTTPS, avšak potřebuji HTTPS "vypnout" pro dva soubory, které používám pro upload informací z Raspberry, které mohu přenastavit až po novém roce (jsou umístěné daleko - zahrady). Nerada bych tedy jim znemožnila posílání dat, protože Raspberry posílá data přes CURL do HTTP. Soubory mám na FTP ve složce /raspberry/ a /raspberry_2/

Z nastavení .htaccess u HTTPS jsem našla tohle, ale týká se to pro celou doménu. Jak udělat, aby se to netýkalo pro určité soubory?

RewriteEngine on
RewriteCond %{HTTPS} off

RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule ^(.*)$ https://example.cz/$1 [R,L]

# Pridani lomitka na konec (krome souboru)
RewriteCond %{REQUEST_URI} /([^\.]+)$
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^((.*)[^/])$ /$1/ [R=301,L]

# Presmerovani www.example.cz -> example.cz
RewriteCond %{HTTP_HOST} ^www.example\.cz [NC]
RewriteRule ^(.*)$ https://example.cz/$1 [R=301,L]


# Presmerovani duplicit
RewriteRule ^index.html https://example.cz/ [R=301,L] 
RewriteRule ^index.htm https://example.cz/ [R=301,L] 
RewriteRule ^default.asp https://example.cz/ [R=301,L]  
RewriteRule ^default.aspx https://example.cz/ [R=301,L]
Kajman
Profil
Můžete např. použít flag S na přeskočení následujích pravidel, nebo flag L na ukončení aktuálního procházení pravidel
#pro url zacinaji na raspberry neprovadet nasledujici jedno pravidlo
RewriteRule ^raspberry - [S=1]
#presmerovani na https
RewriteCond %{HTTPS} off
RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule ^(.*)$ https://example.cz/$1 [R=302,L,NE]

Na test přesměrovní je lepší používat 302 a třeba až po týdnu, až je jistota, že to nikde nezlobí, tam dát 301. Při přesměrování (minimálně tam, kde používáte v cíli proměnné) používejte flag NE.

Curl dle nastavení umí následovat přesměrování. Je vhodné omezit počet pro případné zacyklení.
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_MAXREDIRS, 10);
PetraPP
Profil
Moc děkuji za výpomoc, ale nefunguje to :( Stále si to jede na HTTPS a i když vložím URL bez HTTPS jako http://, tak se to samo přesměruje na https :(
Zkouším na testovacím soubor http://example.cz/raspberry/test.php .... a hodí mně to zpět na https.

Zkoušela jsem použít i upravený script, trochu jsem zkoušela, ale bez výsledku.
RewriteRule ^raspberry - [S=1]
RewriteCond %{HTTPS} on
RewriteCond %{ENV:HTTPS} !^.*off
RewriteRule ^(.*)$ http://www.example.cz/$1 [R=302,L,NE]

Na internetu jsem zkoušela hledat a našla script, který již přesmerovává z HTTPS na HTTP, ale vypíše to, že stránka nebyla nalezena. Tož nevím.
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/domains/example.cz/raspberry/test.php
RewriteRule ^ http://www.example.cz/raspberry/test.php [R=301,L,QSA]

/domains/ používám proto, protože mám WEDOS.cz a ty jejich aliasy .. multihosting nebo jak se to jmenuje.

Za každou radu budu opravdu moc ráda. Potřebuji vypnout HTTPS pouze pro určité soubory, což bohatě stačí.
Kajman
Profil
Můžete zkusit ještě obecnější podmínku, že to je někde v url
#pro url obsahujici raspberry neprovadet nasledujici jedno pravidlo
RewriteRule raspberry - [S=1]
#presmerovani na https
RewriteCond %{HTTPS} off
RewriteCond %{ENV:HTTPS} !^.*on
RewriteCond %{REQUEST_URI} !raspberry
RewriteRule ^(.*)$ https://example.cz/$1 [R=302,L,NE]
Keeehi
Profil
PetraPP:
Ještě je dobré zkontrolovat, zda to přesměrování dělá opravdu server, nebo zda není prohlížeč "až moc chytrý" a neupgraduje spojení sám od sebe aniž by mu to server řekl. V takové případě je možné, že je vše správně.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0