chcę, żeby niektóre podstrony były dostępne tylko w połączeniu szyfrowanym (https).
Robię to tak:
Kod
Options +FollowSymlinks
RewriteEngine On
#SSL
RewriteCond %{HTTPS} !=on
RewriteRule "(rejestruj|login|zmien_haslo|profil)+" "https://%{HTTP_HOST}%{REQUEST_URI}" [R=301,L,NC]
#na koniec jeszcze nice URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*$ ?controller=$1&action=$2&$3=$4&$5=$6&$7=$8 [L,NC,NS]
RewriteEngine On
#SSL
RewriteCond %{HTTPS} !=on
RewriteRule "(rejestruj|login|zmien_haslo|profil)+" "https://%{HTTP_HOST}%{REQUEST_URI}" [R=301,L,NC]
#na koniec jeszcze nice URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*([^/]*)/*$ ?controller=$1&action=$2&$3=$4&$5=$6&$7=$8 [L,NC,NS]
To działa, czyli jak wklepię np. http://localhost/example.net/kontroler/rejestruj, zostanę przekierowany na https://...
Muszę jednak założyć, że użytkownik może wklepać https:// dla innych akcji, np. https://localhost/example.net/kontroler/non_ssl- to chcę przekierować z powrotem na http://... Z tym właśnie mam problem, próbuję m. in. tego:
Kod
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !(rejestruj|login|zmien_haslo|profil)+ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC]
RewriteCond %{REQUEST_URI} !(rejestruj|login|zmien_haslo|profil)+ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC]
Skutek jest taki, że wszystkie adresy są przekierowywane na http:// (włącznie z tymi 'rejestruj' itd.), a dodatkowo te, które powinny być dostępne via https, są w postaci http://localhost/example.net?controller=ko...ction=rejestruj (a np. /non_ssl będzie już w "ładnej" postaci).
Nie bardzo wiem, gdzie robię błąd, dlatego będę wdzięczny za pomoc.
Pozwolę sobie na podbicie tematu - ciągle nie znalazłem rozwiązania, a sprawa trochę mnie ciśnie.